跳到主要内容

Angular、Vue 和 React 框架对比

Angular 和 Vue 的对比

Angular 非常适合开发大型应用,它是一个综合性框架,同时也是一个开发平台。Angular 关注的是整个项目和应用的开发,属于自上而下一步一步进行开发,力求集大成。

Angular 有以下几个主要特点

编写代码有较强的规范性 集成了路由、表单、组件等各种模块,具有很好的完整性
更像是一个综合性的单页面应用开发平台

React 框架

React 是一个关注用户界面的 JavaScript 库,主要解决的是如何将数据渲染到视图中的问题,关注的重点在于视图层。React 自称是一个库,学习成本相对较低,但是配套的 Redux 和 react-router 学习成本却比较高,核心库全部来自第三方。

React 没有很强的编码规范,可以灵活多变地进行设计,但需要开发者自己完成很多逻辑 React 关注的是如何将数据渲染到视图中,采用自下而上的开发模式

Vue 框架

Vue 的核心库只关心视图层,但是可以根据需要选择性地集成 Vuex、Vue-router 等库。有点类似于"我想用时再用"的儒家思想,给人一种博大精深的感觉。

Vue 有较强的编码规范,需要什么就使用什么,通过渐进式地集成更多内容,不断听取用户的需求,升级各种功能 和 React 一样,Vue 也关注如何将数据渲染到视图中,同样采用自下而上的开发模式

数据绑定和数据流

React 的数据绑定和数据流

React 采用单向数据绑定

事件触发 state 更改,进而触发视图变更

Vue 的数据绑定和数据流

Vue 采用双向数据绑定

事件触发 state/data 更改,进而触发视图变更 通过 v-model 直接在视图上修改,触发 state/data 变更

数据流动方向

在父子组件中,React 和 Vue 的数据流动方向都是单向的

父组件的 state 变更会触发子组件 props 的变更 子组件 props 变更不会影响到父组件的 state 只有父组件 state 变更才能引起子组件 props 的变更

不可变和可变的值

props 是不可变的值(immutable value) state/data 是可变的值(mutable value)