概述
个人感觉,vue 与 react 都算真香!,具体项目中用哪个这个需要我们综合来考量一下各自的特点。
人气
React 排名第一。但是 vue.js 也显示了非凡的成功。自 2014 年推出以来,它已成为开发人员在较短时间内的热门选择。
背景知识
Vue.JS: Google 前工程师尤雨溪于 2014 年创建了这个框架。但是它没有得到著名的顶级组织的支持。 截至撰稿时的最新版本是 2.6.10,于 2019 年 3 月 20 日发布。
它是 javascript 家族中最年轻的成员,仅仅推出五年。 阿里巴巴和 Gitlab 正从该框架中受益。 Vue 被认为是一些成功的 javascript 技术功能的结合。
React:与 Vue 不同,这个 JavaScript 库是由 Facebook 创建的。最初是为了 Facebook 广告流量管理创建的。那时 Facebook 遇到了维护和编码方面的问题。
它以动态创建和交互式 UI 的能力而闻名。 最新版本是16.8.6,于 2019 年 5 月 6 日发布。使用 React 编写代码的一些热门公司是 BBC,Instagram,WhatsApp和清单实际上很长!
相同点
- 都是属于MVVM框架
- 都有双向数据绑定
- 都是数据驱动性的ui框架
- 都采用了Virtual DOM
- 都是组件化开发方式
不同点
- vue 提供了一系列的api, 而react的api 很少
- vue的思想是响应式的,也就是基于是数据可变的,react整体是函数式的思想,是单向数据流,推崇结合immutable来实现数据不可变
- vue 采用了template, react采用了jsx(tsx)
首先,来说明下这些字母代表的含义
- M:Model 模型
- V:View 视图
- C:Controller 控制器
- VM:ViewModel 视图模型
单向数据流过程:
简单的单向数据流(unidirectional data flow)是指用户访问View,View发出用户交互的Action,在Action里对state进行相应更新。state更新后会触发View更新页面的过程。这样数据总是清晰的单向进行流动,便于维护并且可以预测。双向数据流过程:
在双向数据流中,Model(可以理解为状态的集合) 中可以修改自己或其他Model的状态, 用户的操作(如在输入框中输入内容)也可以修改状态。这使改变一个状态有可能会触发一连串的状态的变化,最后很难预测最终的状态是什么样的。使得代码变得很难调试。