Vue 对自己框架和其它框架对比后,生产的一个特定的名词 Progresive Framework
理解是在开发的过程中有渐进式的使用,开始一个关注点是视图,先把视图做好,当需要路由有 Vue-rounter,需要状态管理有 Vuex,需要服务器渲染有 Nuxt.js等等。当有需要就可以用官方的库来集成。
三大框架对比
- Angular
综合性能框架、开发平台- 关注于项目应用
- 而不是视图渲染 和 状态的管理
适用于大型应用
- React
用户界面 View 视图层,怎么把数据渲染到视图- 只关注一个点:视图 -> 库
- 不提供 状态中央管理 (Redux) 和 路由 (react-router)
依赖第三方组件解决
- Vue
用户界面 View 视图层,怎么把数据渲染到视图- 只关注一个点:视图 -> 核心库
- 与 React 不一样是做了加法 Micro libs
- Vuex 选择集成
- Vue-router 选择集成
Vue 与 React 都自下往上,而 Angular 是关注整个应用,集成大成地自上往下一步一步地开发。
Vue 与 React 从最开始定了一个点是视图,由低层定一个驱动出来让用户不操作 DOM,不关心数据怎样渲染,而由 Vue 或 React 的库来完成视图与数据的交互。
但当 Vue 集成了那些 Micro libs 时就是一个框架(库与库相互结合就是成为一个框架)。
框架会有一些强规范,必须按照规范来完成开发。
数据绑定和数据流
- 数据绑定
数据与视图渲染直接的关系- React 单向数据绑定
- 必需通过 event 的触发对 state 的更改,导致视图变更
- 视图的改变是无法改变 state
- Vue 双向数据绑定
- 通过 event 的触发对 state / data 的更改,导致视图变更
- 通过 v-model 机制来完成 视图变化,导致 state / data 变更
- React 单向数据绑定
- 数据流
数据流淌的方向,父子组件中数据按照什么方向流动- 单向数据流
- React / Vue 都是由 父组件 传递 state 作为 props 给 子组件
- 不能 子组件的 props 变更导致 父组件的 state / data 变更 ( props:immutable value )
- 只能 父组件的 state / data 变更导致 子组件的 props 变更 ( state / data: mutable value )