自己一直学的是react,之前也用react写各种东西,到了实习公司,vue嘿嘿哈嘿,不过讲真,vue上手真的快。
近期一直拿vue写东西,自己做了一些vue和react的对比:
主要实现不同:
相似之处:
- 使用Virtual Dom.
- 均提供了响应式(reactive)和组件化(composable)的视图组件。
- 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
不同之处:
1.运行时性能来讲:
(1)react中,当某个组件的状态发生变化时,它会以该组件为根,重新渲染整个组件的子树。若要避免不必要的子组件的重渲染,可以用手动实现
shouldComponentUpdate
方法的方式,保证该组件的整个子树的渲染输出都是由该组件的Props
所决定。
(2)vue中,组件的依赖是在渲染过程中自动追踪的,所以就是说每一个组件都已经自动获得shouldComponentUpdate
,我们在开发过程中并不需要考虑此优化。
2 Html/CSS方面:
(1)react所有组件的渲染都是依靠jsx(jsx是使用xml语法编写js的一种语法糖)。使用jsx的好处就是I.可以使用完整的编程语言js功能来构建你的视图页面。(eg:可使用临时变量,js自带的流程控制,直接引用当前js作用域中的值等等。)II.开发工具对jsx的支持比对vue模板的支持更先进。
(2)vue也提供了渲染函数,读起来更加自然流畅,开发效率更高。基于html的模板使得将已有的应用逐步迁移到vue更容易。
3.规模方面:
(1) Vue和react都提供了强大的路由来应对大型应用。react的状态管理模式非常容易集成在Vue应用中,更有创新意识。
(2)Vue 的路由库和状态管理库都是由官方维护支持且与核心库同步更新的。React 则是选择把这些问题交给社区维护,因此创建了一个更分散的生态系统。但相对的,React 的生态系统相比 Vue 更加繁荣。
(3)脚手架方面:Vue-cli脚手架,非常容易的构建项目,包含了webpack.React提供了create-react-app,存在一些局限性,当然这些限制都是自身的优势。
4.原生渲染
ReactNative使用相同的组件模型编写有本地渲染能力的APP,跨平台开发,对开发着非常友好。
Weex不仅仅可以运行在浏览器端,还能运行在ios和Android上的原生应用的组件。
差不多就这些了。晚安!