为何都在说 React 比 Vue 难?

前言javascript


咱们使用Vue和React已经很长一段时间了 ,两个框架上实践代码量都在10万行以上。不得不说二者html

都是很nice的,帮助开发者减小不少工做量,这类框架是现代化前端开发必备的。然而Vue和React前端

二者之间的选择并不像选择苹果或香蕉同样简单, 二者在工程实践上的差距让咱们逐渐放弃了Vue。vue

图片


图片

常见摇摆问题、观点java


Vue或React文档更丰富?react


二者都有丰富的文档(包括中文文档),Vue 文档、React 中文,因此不用担忧你四六级都过不了,看不面试

懂文档,这都是有眼就行的事~固然,若是你提早懂点javascript相关知识也是大大滴好,ES6 语法更redux

佳。api

Vue的话须要记住各类指令,还有属性细节,兔不了常常查文档。React 相对简单,记住:“函数入口是框架

props,出口是html"就好了。

图片


React学习门槛高?


这个也不是你选择框架的缘由,若是这个也能够做为缘由的话,我以为是由于你懒,给本身找了借口。

据我本身学习、实践总结,两个框架都很简单,有手就行,有脑就会,不见得会React就比Vue牛逼很

多。二者都提供了相应脚手架,方便用户使用:


vue

图片

react

图片


傻瓜式使用,无限div就完事了。

图片


大项目用React,小项目用Vue?


怎么说呢?这个就是万精油结论,没有参考意义。你如何定义一个项目是大项目?超过xx万行代码?后

端API超过xxx个?不管什么项目,都有作"大”的可能,只要正常运营,你就得持续维护,补充新增的需

求。框架的可持续演进更为重要。

固然我能够这么跟你说,React 适不适合“小"项目我不知道,可是Vue不适合“大"项目,业务代码超过5

万行以后问题明显,后面会详细说这点。



图片

区别



图片

今天咱们就来分析一下这两款框架的区别


模板引擎:

vue的视图模板采用类html的写法加上本身的指令与自定义属性组成,在多数状况下是要比react的JSX写法开发效率高和清晰的。可是在复杂场景下,类html的写法有时候很比较麻烦或者难以胜任,这个时候就凸显出JSX的语言表现力的丰富了。不过vue目前也支持jsx的写法。


样式:

vue的样式和模板能够写在同一个文件里,而react的主流作法仍是要单写一个样式文件,虽然区别不大,但仍是更喜欢能少写几个文件的感受。另外vue的class有多种写法,sting/object/array均可以还能自动merge,体验很好。而react自己不行,须要借助相似classname的库来实现。


数据响应逻辑:

vue使用代理/拦截的方式使得咱们直接修改data就能够了,而react须要使用setState api来实现。另外因为vue的实现方式,因此vue知道咱们修改了哪些东西,而且还有watch/computed等钩子公开发人员使用,而反观react就比较不人性化了,须要咱们本身在业务逻辑层diff才知道。


配套设施:

这里指的就是经常使用的配套库(全家桶),vue基本上是官方给了咱们一个最佳实践,直接按照官方推荐的全家桶来构建咱们的应用就够了,而react就比较开发,对于社区依赖更多,因此相关的配套设施须要咱们本身去找去接,社区大神们的思想各不相同,因此比vue要费心。好比我要用redux还须要引个react-redux,并且竟然还不支持异步,我还得引个redux-thunk,可能我还得跟redux-saga对比下,较真一点的可能还不敢人云亦云,还要亲自看看源码才行,另外明知道我是个选择困难症患者还要有个mobx来捣乱。可能当我找到自认为是最佳实践的方案的时候,项目已经黄了或者社区又出了新的方案(哭晕在厕所 =。=...)


性能:

在vue1.0时代,vue的性能的确是比react要弱的,但进入2.0时代,vue果断借鉴了一大波react在性能方面的优化经验(这里不论这种作法怎么样啊),反正瞬间就把性能基本给拉平了。再加上react性能须要很是有经验,很是注意你本身代码的写法才能发挥的出来,好比你要配合reselect库或者对purecomponent/shouldupdate等很了解。不然你写出来的应用的性能一定是奇慢的,而vue你其实没必要关注那么多,这得益于他的数据响应的内部实现。在绝大多数状况下你不须要怎么关注你的写法是否致使了不少多余的计算和渲染开销。


使用人群:

这点是vue的说大不大说小不小的命门,vue在国外是没有react知名的,因此在国外react是一枝独秀,致使你学习vue可能没法跟世界接轨。另一个就是不知道曾几什么时候,面试官有意无心的会透露出若是你只会vue,那你必定是个初学者是个low逼....一方面缘由的确vue的上手难度要比react小不少,刚才也说了不少vue不须要关心这关心那,因此新手学习vue的更多。但我其实很不能理解这点!!为何学习vue就要比学习react低人一等。为啥新手学的多的东西就不能是好东西,非的是晦涩难懂,很难掌握的东西才能凸显出你的不同凡响和不凡么?我以为这个价值观是很是的扭曲的。在我看来不说设计思想,就单说vue的实现方式我认为是要比react高级和先进的。


好了,说了真么多,我猜你可能仍是不知道要选哪一个框架,哈哈哈.... 真是个世界性难题啊。


这么说吧,我的认为,抛开偏见,中小型项目我推荐使用vue来开发,缘由:

  1. 须要考虑的事情少。

  2. 开发效率高。

  3. 比较初级的工程师也能够轻松胜任。

而对于大型项目,仍是推荐react去开发,缘由:

  1. 你的掌控力更多。

  2. 因为一不当心就会致使性能降低,因此会迫使你去好好组织你的代码,因此写出来的东西更规范,可维护性更高。这个对于大型项目是相当重要的。谁也不但愿一个好几年写出的大型项目由于走了几个老人就没法维护了吧。

相关文章
相关标签/搜索