Vue和React有哪些区别(2)

Redux 在检测数据变化的时候,是通过 diff 的方式比较差异的,而Vuex其实和Vue的原理一样,是通过 getter/setter来比较的(如果看Vuex源码会知道,其实他内部直接创建一个Vue实例用来跟踪数据变化)

七、diff算法不同

两者流程思维上是类似的,都是基于两个假设(使得算法复杂度降为O(n)):

不同的组件产生不同的 DOM 结构。当type不相同时,对应DOM操作就是直接销毁老的DOM,创建新的DOM。

同一层次的一组子节点,可以通过唯一的 key 区分。

但两者源码实现上有区别:

Vue基于snabbdom库,它有较好的速度以及模块机制。 Vue Diff使用双向链表,边对比,边更新DOM 。

React主要使用 diff队列保存需要更新哪些DOM,得到patch树,再统一操作批量更新DOM。

Vue和React有哪些区别

八、事件机制不同

Vue

Vue原生事件使用 标准Web事件

Vue组件 自定义事件机制,是父子组件通信基础

Vue合理利用了snabbdom库的模块插件

React

React原生事件被包装,所有事件都冒泡到顶层document监听,然后在这里合成事件下发 。基于这套,可以跨端使用事件机制,而不是和Web DOM强绑定。

React组件上无事件,父子组件通信使用props

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/58971c2fd25a1ae27e1b9674b2dc85ae.html