最近接手一个项目 算是打破之前的认知 因为抱着墨守成规的态度 所以对于父组件向子组件传值 都是通过props的方式

<my-header :title="'头部信息'" />

export default {
  props: {
    title: {
      type: String,
      required: true
    }
  }
};

至于通过获取子组件实例 调用子组件方法传参的方式 很少涉猎

<my-header ref="myHeader" />
  
this.$refs.myHeader.setTitle('头部信息')

但是项目却都充斥着第二种方式 导致我一下就茫然了
到底哪种是正统?到底哪种是正统?到底哪种是正统?
故抱着疑问 向群里大佬发出了疑问 得到了各式各样的答案
微信图片_20200527212154.jpg
微信图片_20200527212138.jpg
微信图片_20200527212209.jpg
微信图片_20200527212217.jpg
微信图片_20200527212148.jpg
微信图片_20200527212203.jpg
一边倒的答案 第一种才是正统
归纳一下原因
1、第二种可维护性差 不够一目了然 需深入到组件内部了解
2、操作虚拟dom的代价偏高 jq思维
3、耦合性大 父子需要相互依赖
4、与单向流动相斥 父子都能改变 不好追溯
结果不言而喻


卡米撒吗
117 声望8 粉丝