vue和react的区别

307 阅读1分钟

数据流向

  • react是单向数据流(如表单输入,要通过onChange()事件手动设置到state来触发页面的重新渲染)
  • vue是双向数据流(表单输入,自动重新渲染)

组件通信的区别

1

  • vue有三种方式可以实现组件通信:
    1. 父组件通过 props 向子组件传递数据或者回调,虽然可以传递回调,但是我们一般只传数据,而通过 事件的机制来处理子组件向父组件的通信
    2. 子组件通过 事件 向父组件发送消息
    3. 通过 V2.2.0 中新增的 provide/inject 来实现父组件向子组件注入数据,可以跨越多个层级
  • React 中,也有对应的三种方式:
    1. 父组件通过 props 可以向子组件传递数据
    2. 子组件通过回调传递数据给父组件
    3. 可以通过 context 进行跨层级的通信,这其实和 provide/inject 起到的作用差不多。

模板渲染方式的不同

  • React 是通过JSX渲染模板
    • React是在组件JS代码中,通过原生JS实现模板中的常见语法,比如插值,条件,循环等,都是通过JS语法实现的
  • 而Vue是通过一种拓展的HTML语法进行渲染
    • Vue是在和组件JS代码分离的单独的模板中,通过指令来实现的,比如条件语句就需要 v-if 来实现