Appearance
Vue 和 React 的区别
Vue
- 模板化
.vue文件的模板化语法,让我们在template、script、style标签中按照规定好的语法编写即可。这使得vue更加简洁易懂且容易上手,也比较适合团队的协作。
- 指令
vue提供了很多的原生指令例如v-for
/v-if
/v-show
等等,还可以通过自定义指令的方式来创建特定功能的指令,从而用于实际开发中。通过指令可以提升代码的复用性,且代码更加的简洁易懂。
- 双向绑定
数据的变化可以自动反应在视图上,视图的变化也可以自动更新数据。通过vue的v-model
指令来实现双向数据绑定。
- 响应式原理
vue通过数据劫持+依赖收集的方式实现数据的响应。数据劫持的过程vue2主要是使用Object.defineProperty,vue3使用ES6的proxy。
React
- JSX
JSX是javascript的一种扩展语法,可以将html和js结合起来进行编写。可以通过JSX的方式更加灵活的控制视图(比如同样的功能在vue中需要一直进行v-if/v-else-if/v-else,看起来就变得很复杂)。
- 数据绑定
react的数据绑定是单向的,即从数据到视图。开发过程中需要手动控制视图中的状态,来更新数据值。这可能会使得代码的复杂度增加。
- 响应式原理
React主要是通过setState()方法来更新状态,状态更新之后,组件也会重新渲染。