vue3和react对比

116 阅读1分钟

通信方式(props)

分类reactvue
propsprops传递值props传递值
contextprovide/consumerprovide/inject
第三方组件redux/mobx等vuex/pinia等
回调props传递方法,如果是方法需要通过冒号的形式,或者@+emit组合形式
发布订阅publish/subscribebus

个人感受:在props传递使用中,react比vue好用,写法不需要那么多要求,随便你传递,而vue需要看是变量还是值是否需要加:;或者方法时可以通过:fun的形式,子组件 props.fun调用,也可以通过@fun的形式,子组件通过defineEmits获取了调用

props监听变化

  • React
    1. componentWillReceiveProps(v16.3前)
    2. getDerivedStateFromProps(v16.4)
  • Vue
    1. watch(单纯监听值的变化)

    2. computed(依赖并需要计算的值)

数据流

  • React单项数据流
  • Vue双向数据流:vue2利⽤ Object.defineProperty 劫持对象的访问器,在属性值发⽣变化时我们可以获取变化,然后根据变化进⾏后续响应,在vue3.0中通过Proxy代理对象进⾏类似的操作

个人感受:React通过Props从上往下依次传递,如果Vue通过props传递也是可以的,但vue有v-model指令,这个比React好用,不用在子组件写update父组件的方法

组件里写子组件

  • React可以组件里写多个子组件自己调用,对代码的拆解
  • Vue不能在组件里继续写子组件,需要单独建文件,写子组件