1、设计思想
在 vue 官网中说它是一款渐进式框架,采用自底向上增量开发的设计,在数据流上使用双向绑定/双向数据流。
- 渐进式自底向上增量开发框架的大概意思就是我们没必要一上来就搞懂Vue的每一个部件和功能,先从核心功能开始学习,逐渐扩展。同时,在使用中,我们也没有必要把全部件能都拿出来,需要什么用什么就是了,而且也可以把Vue很方便的与其它已有项目或框架相结合。这也是我的简单理解。如果有不同的解释请多多指教。
- 双向绑定/双向数据流原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的
React 主张函数式编程,组件式开发,单向数据流。如果我们需要双向数据流可以通过onChange方法,setState 方法。
2、编写语法
vue推荐的做法是webpack+vue-loader的单文件组件格式,vue保留了html、css、js分离的写法。
React的开发者可能知道,react是没有模板的,直接就是一个渲染函数,它中间返回的就是一个虚拟DOM树。
React推荐的做法是 JSX + inline style, 也就是把HTML和CSS全都写进JavaScript了,即'all in js'。
3、构建工具
- vie提供了CLI 脚手架,可以帮助你非常容易地构建项目。
- React在这方面也提供了create-react-app,但是现在还存在一些局限性,不能配置等等。
4、数据绑定
- vue使用双向数据绑定,就是说View的变化能实时让Model发生变化,而Model的变化也能实时更新到View。
- React使用单向数据流,React中是不允许更改属性(props)的值,但是状态(state)是可以更改的。React中在更改state值的时候不能通过this.state这种方式更改,需要调用this.setState()方法区修改state值,而且this.setState()方法是异步执行的。