Vue与React的对比
从某种角度上看,vue和react有着很多相同之处,他们都是mvc的变体,但是他们也有着许多不同的地方,从下面几个方面的对比,让我们一起区分两个框架的不同。
1、从直观角度上看
1.1、vue有自己的指令和方法,react没有。
vue中的12个指令: v-bind,v-once,v-model,v-text,v-html,v-on,v-if,v-else,v-show,v-for,v-pre,v-clock
vue的方法:watch、methods、computed、filters、directives
1.2、class与style绑定
在vue中, v-bind 用于 class 和 style 时,vue.js 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。
1.3数据的双向绑定
vue 的依赖追踪是【原理上不支持双向绑定,v-model 只是通过监听 DOM 事件实现的语法糖】
vue的依赖追踪是通过 Object.defineProperty 把data对象的属性全部转为 getter/setter来实现的;当改变数据的某个属性值时,会触发set函数,获取该属性值的时候会触发get函数,通过这个特性来实现改变数据时改变视图;也就是说只有当数据改变时才会触发视图的改变,反过来在操作视图时,只能通过DOM事件来改变数据,再由此来改变视图,以此来实现双向绑定
双向绑定是在同一个组件内,将数据和视图绑定起来,和父子组件之间的通信并无什么关联
组件之间的通信采用单向数据流是为了组件间更好的解耦,在开发中可能有多个子组件依赖于父组件的某个数据,假如子组件可以修改父组件数据的话,一个子组件变化会引发所有依赖这个数据的子组件发生变化,所以vue不推荐子组件修改父组件的数据,直接修改props会抛出警告