vue和react的区别
数据流向
- react是单向数据流(如表单输入,要通过onChange()事件手动设置到state来触发页面的重新渲染)
- vue是双向数据流(表单输入,自动重新渲染)
组件通信的区别
- vue有三种方式可以实现组件通信:
- 父组件通过 props 向子组件传递数据或者回调,虽然可以传递回调,但是我们一般只传数据,而通过 事件的机制来处理子组件向父组件的通信
- 子组件通过 事件 向父组件发送消息
- 通过 V2.2.0 中新增的 provide/inject 来实现父组件向子组件注入数据,可以跨越多个层级
- React 中,也有对应的三种方式:
- 父组件通过 props 可以向子组件传递数据
- 子组件通过回调传递数据给父组件
- 可以通过 context 进行跨层级的通信,这其实和 provide/inject 起到的作用差不多。
模板渲染方式的不同
- React 是通过JSX渲染模板
- React是在组件JS代码中,通过原生JS实现模板中的常见语法,比如插值,条件,循环等,都是通过JS语法实现的
- 而Vue是通过一种拓展的HTML语法进行渲染
- Vue是在和组件JS代码分离的单独的模板中,通过指令来实现的,比如条件语句就需要 v-if 来实现