相同点:
- 他们都是Javascript 的框架,专注于创造前端的数据应用。不同于早期的JavaScript 框架“功能齐全”, Reat 与 Vue 只有框架的骨架,其他的功能如路由、 状态管理等是框架分离的组件。
- 都使用了虚拟 DOM Virtual DOM 是一个映射真实 DOM 的 JavaScript 对象,如果需要改变任何元素的状态, 那么是先在 Virtual DOM 上进行改变 而不是直接改变真实的DOM。 当有变化产生时, 一个新的 Virtual DOM 对象会被创建并计算新旧 Virtual DOM之间的差别,之后这些差别会应用在真实的DOM 上。
- 组件化React与 Vue 都鼓励组件化应用
- Props React 和 Vue 都有‘props'的概念,props 在组件中是一个特殊的属
性 允许父组件往子组件传送数据。 - 构建工具React 和 Vue 都有自己的构建工具,你可以使用它快速搭建开发环境。
不同点:
一:数据
- vue: 双向数据绑定和单向数据流。双向数据绑定: DOM 元素绑定的data值,当发生改变后, vue 的响应式机制会自动监听 data的变化重新渲染。单向数据流:当父组件给子组件传递数据的时候,子组件只可以读取而不能修改数据。 可以用 watch 监听数据的更改,再赋给父组件的变量。
- react:单向数据流。 DOM 元素依赖于 state, 但改变state 不会改变渲染
好的DOM,通过 setStatel)才能重新渲染。父组件传值到子组件,如果顶级的props变了,会重新渲染所有的子组件。
二:虚拟 DOM
- vue:计算出虚拟DOM的差异,在渲染的过程中跟踪每个组件的依高关系,不会重新渲染整个组件树
- react:当应用的状态改变时,重新渲染全部子组件,可以通过shouldComponentUpdate 生命周期进行优化模板和jsx
三:模板和jsx
- vue:具有单文件组件,可以把 html、css. js写在一个 vue文件里-
MWM 框架 - react:依赖于jsx,在JavaScript 中创建DOM---视图层框架