vue和react的区别(vue3.0以上)

现象级的UI框架是一种语言框架重要的生态,如Bootstrap是Jquery的现象级UI;Antd是React的现象级UI。此外,Element常与Vue组合使用。

1.Vue +Typescript + Jest + less + Ant.d

2.Vue +function-base + Jest + less + Ant.d

3.Vue +function-base + Jest + scss + Vuetify

ant.design.vue是用jsx写的,Vuetify是用ts+ render函数写的。

React和Vue都是做组件化的,其整体功能类似,但设计思路有很多不同。

第一点:数据是不是可变的

React整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在React中,是单向数据流,推崇结合immutable来实现数据不可变。React在setState之后会重新走渲染的流程,如果shouldComponentUpdate返回的是true,就继续渲染,如果返回了false,就不会重新渲染,PureComponent就是重写了shouldComponentUpdate,然后在里面作了props和state的浅层对比。

而Vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。

总之,React的性能优化需要手动去做,而Vue的性能优化是自动的,但是Vue的响应式机制也有问题,就是当state特别多的时候,Watcher也会很多,会导致卡顿,所以大型应用(状态特别多的)一般用React,更加可控。

第二点:通过js来操作一切,还是用各自的处理方式

React的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等。

Vue是把html,css,js组合到一起,用各自的处理方式,Vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。

第三点:内置功能与社区服务

React灵活性强,社区的设计服务更多,Vue内置功能丰富,使用便捷。

比如 redux的combineReducer就对应vuex的modules,

比如reselect就对应vuex的getter和Vue组件的computed,

vuex的mutation是直接改变的原始数据,而redux的reducer是返回一个全新的state,所以redux结合immutable来优化性能,Vue不需要。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容