干嘛不用原生H5+CSS+javascript写webapp,而一定要用各种前端、后端的框架
发布于 2 个月前 作者 xiashulin 952 次浏览 来自 问答

现在框架太多了,各种大厂、各种流行、各种框架服务,都挑花了眼,学累了脑,如果是一个比较简单的业务,不要bootstrap,不要foundation,不要jq-mobile,不要vue,不要angular,不要React……,只用原生的html5,css,javascript等配合,后端就用个熟悉的语言,能不能做好一款一般需求的webapp?

9 回复

可以的,看项目的大小,不能一言以蔽之的

个人感觉,各种技术的存在是为了简化编码的难度或者减轻工作量或者解决某些问题的,而不是为了难为大家的。 所以,当你的webapp简单到直接用原生的html、css、javascript能更简单更直接满足你的需求,那这些技术都可以不用。 不过我觉得,自己写写webapp玩玩用原生的还行,真用于生产环境的,单纯用原生的html5,css,javascript工作量可能会很大,麻烦也会不断。

命名空间+回调 这就够你喝一壶了

你看一下hbuilder,你可以用原生的js+css开发一个混合式的app。

非常同意 @youthfighter 的观点。

先回答你的问题:能。

首先,为什么要用框架? 比如我有一个滑块,和一张图片,我想让用户拖动滑块,然后图片会自动放大缩小,整个过程要十分流畅,那么我就要自己写js,监听滑块的滑动事件,然后再写js去控制图片的尺寸大小。这些用简单的js就能很方便实现,为了这个功能还去引入angular就是大炮打苍蝇。 好,现在加了一个新需求,让用户可以拖动图片的边框来放大缩小图片,同时滑块也要自动滑动;于是我就要自己将刚才那两段JS copy一份改一改,改成监听图片边框的拖动事件,然后再去改变滑块的位置。如果以后我要把滑块改成旋钮的话,我需要想着改两段几乎一模一样的代码,不过时间长工作忙很容易就忘了这一茬。不过这些都还好,毕竟功能很简单嘛。 新需求来了,用户每次做操作改变图片尺寸,都要自动发到服务器上;用原生JS也可以实现呀,在改变图片大小的JS中加一段JS代码发AJAX请求到服务器就好了。目前为止我敢说用原生JS写总共只需要10分钟不到100行代码。不需要用任何框架。 公司业务上升了,开始拓展业务,上述的功能需要在一个页面上重复做几十个,对应不同的业务需求,也就需要copy几十份代码进行修改,代码由几十个行成倍增长成了上千行。这时候维护起来忙得要死,改动的时候牵一发而动全身,而且经常有疏漏,造成BUG。 公司大规模拓展业务,类似上述的项目有十几个,都在一个网站上,用不同的页面来做,而且考虑到用户体验和服务器压力,需要每个页面在不刷新的情况下跳转,于是就要做前端路由,使用“#”来标明当天的页面;也可以用原生JS直接实现,写一段JS来监听URL的变化,然后不停地清空和填充<body>的内容,还需要写另一段JS来管理每一个页面需要如何以及怎样的填充<body>的内容,而且十分可能在页面跳转的时候要提前发AJAX请求来获取一些数据,根据服务器返回的信息来决定显示什么样的页面。 到目前为止,这些功能可以说是勉强能支撑公司的业务活动了。而目前为止都是自己用原生JS写的话,代码数量已经能达到上万行了。 其实好多东西都是重复的,copy代码的话不好维护,一类功能用10段代码实现的话,改这类功能就需要10个地方同时改,所以我们可以把重复的代码抽象成一些通用的function或者object,让每一个用到的地方调用同一个函数传不同的参数就可以了;发送AJAX的地方也抽象成一些通用的服务,想发请求的时候调用函数就好了;前端路由和页面渲染的部分对灵活性要求较高,需要设定很多参数,内部根据不同的参数组合选择不同的渲染方式。 亲,最后你会发现,你自己做了一套框架,而且扩展性、灵活性、开放性、可靠性、性能还不如人家大牛团队写的vue和angular要好。项目复杂性到了一定程度,用第三方成熟的框架只需要自己写两百行JS就能完成上万行代码的功能,何乐不为呢? 但若你只想做一个静态页面,鼠标移动字体变色这样的简单小效果,引入前端框架也没用不是吗? 所以有需要才会用框架,不需要没必要勉强用,那样只会徒增项目体积、消耗服务带宽、降低用户体验。

之后,如何选择前端框架? 我在做项目的时候从来都是先进行需求分析,知道要做啥,再根据需求进行技术选型,看哪些技术可以在满足需求的前提下将开发效率、架构合理性、性能等做到最好,有的项目我会用angular,有的只需要用jquery,有的用react比较适合。 没有完美的框架,但有最适合的框架,多学一学各种框架,能做到项目开始的时候准确选型,可以确保项目周期短、完成度高,那个时候你就是架构师了。

用框架很难选择很累,恰恰说明了你对原生的html5/css/javascript不够熟悉。。。

如果有大量的使用原生js开发经验的话,就能很明显的感受到自己的需求,不需要很费心的挑选。

哪种快、方便,那种来。并不一定要限定在使用框架。只有适合自己的,没有更好的、。

回到顶部