通信方式(props)
分类 | react | vue |
---|---|---|
props | props传递值 | props传递值 |
context | provide/consumer | provide/inject |
第三方组件 | redux/mobx等 | vuex/pinia等 |
回调 | props传递方法 | ,如果是方法需要通过冒号的形式,或者@+emit组合形式 |
发布订阅 | publish/subscribe | bus |
个人感受:在props传递使用中,react比vue好用,写法不需要那么多要求,随便你传递,而vue需要看是变量还是值是否需要加:
;或者方法时可以通过:fun
的形式,子组件 props.fun
调用,也可以通过@fun
的形式,子组件通过defineEmits
获取了调用
props监听变化
- React
- componentWillReceiveProps(v16.3前)
- getDerivedStateFromProps(v16.4)
- Vue
-
watch(单纯监听值的变化)
-
computed(依赖并需要计算的值)
-
数据流
- React单项数据流
- Vue双向数据流:vue2利⽤ Object.defineProperty 劫持对象的访问器,在属性值发⽣变化时我们可以获取变化,然后根据变化进⾏后续响应,在vue3.0中通过Proxy代理对象进⾏类似的操作
个人感受:React通过Props从上往下依次传递,如果Vue通过props传递也是可以的,但vue有v-model指令,这个比React好用,不用在子组件写update父组件的方法
组件里写子组件
- React可以组件里写多个子组件自己调用,对代码的拆解
- Vue不能在组件里继续写子组件,需要单独建文件,写子组件