【React】vue和react的区别

1. 数据流不同

vue可以用v-model实现双向绑定,而react一直提倡单向绑定

2. 模板渲染方式不同

  • React是通过JSX渲染模板。可以使用JS的原生语法完成渲染。如条件(if),循环(for)等
  • vue是通过一种拓展的HTML语法进行渲染,在与JS分离的单独的模板中,通过指令来实现的,比如条件语句 v-if ,循环语句v-for,这样的做法显得有些独特,会把HTML弄得很乱。

3. 组件间通信方式的区别

  • 父组件向子组件通信时,两者都通过props传递数据;
  • 子组件向父组件通信时,vue通过$emit和v-on事件实现,react通过props回调函数实现;
  • 跨层级组件通信时,vue通过provide/inject实现,可以跨越多个层级。react通过context实现,与vue类似

4. 监听数据变化的实现原理不同

  • Vue通过 getter/setter以及一些函数的劫持,能精确知道数据变化。
  • React默认是通过显式地触发setState函数调用,结合diff进行的,如果不优化可能导致大量不必要的VDOM的重新渲染。vue能够精确地知道哪些地方需要更新,不需要优化就能达到比较好的性能,而react需要一些其他的方案提高性能,比如pureComponent,shouldComponentUpdate

为什么React不精确监听数据变化呢?这是因为Vue和React设计理念上的区别,Vue使用的是可变数据而React更强调数据的不可变,两者没有好坏之分,Vue更加简单,而React构建大型应用的时候更加鲁棒。React更偏向于构建稳定大型的应用,非常的科班化。相比之下,Vue更偏向于简单迅速的解决问题,更灵活,不那么严格遵循条条框框。因此也会给人一种大型项目用React,小型项目用Vue的感觉)

你可能感兴趣的:(React,前端,react,vue)