Vue 对自己框架和其它框架对比后,生产的一个特定的名词 Progresive Framework

理解是在开发的过程中有渐进式的使用,开始一个关注点是视图,先把视图做好,当需要路由有 Vue-rounter,需要状态管理有 Vuex,需要服务器渲染有 Nuxt.js等等。当有需要就可以用官方的库来集成。

三大框架对比

  1. Angular
    综合性能框架、开发平台
    • 关注于项目应用
    • 而不是视图渲染 和 状态的管理

适用于大型应用

  1. React
    用户界面 View 视图层,怎么把数据渲染到视图
    • 只关注一个点:视图 -> 库
    • 不提供 状态中央管理 (Redux) 和 路由 (react-router)

依赖第三方组件解决

  1. Vue
    用户界面 View 视图层,怎么把数据渲染到视图
    • 只关注一个点:视图 -> 核心库
    • 与 React 不一样是做了加法 Micro libs
      • Vuex 选择集成
      • Vue-router 选择集成

Vue 与 React 都自下往上,而 Angular 是关注整个应用,集成大成地自上往下一步一步地开发。
Vue 与 React 从最开始定了一个点是视图,由低层定一个驱动出来让用户不操作 DOM,不关心数据怎样渲染,而由 Vue 或 React 的库来完成视图与数据的交互。
但当 Vue 集成了那些 Micro libs 时就是一个框架(库与库相互结合就是成为一个框架)。
框架会有一些强规范,必须按照规范来完成开发。

数据绑定和数据流

  1. 数据绑定
    数据与视图渲染直接的关系
    • React 单向数据绑定
      • 必需通过 event 的触发对 state 的更改,导致视图变更
      • 视图的改变是无法改变 state
    • Vue 双向数据绑定
      • 通过 event 的触发对 state / data 的更改,导致视图变更
      • 通过 v-model 机制来完成 视图变化,导致 state / data 变更
  2. 数据流
    数据流淌的方向,父子组件中数据按照什么方向流动
    • 单向数据流
    • React / Vue 都是由 父组件 传递 state 作为 props 给 子组件
      • 不能 子组件的 props 变更导致 父组件的 state / data 变更 ( props:immutable value )
      • 只能 父组件的 state / data 变更导致 子组件的 props 变更 ( state / data: mutable value )