vue父子通信时必须要经过computed处理吗?

我是看兄弟通信时的一个教程时看到的 说父子通信时prop要用computed处理 好像我之前看别人的父子通信的教程并没有说要这样 我写的父子通信小例子也没有用computed也没事 那么文章中说的这个对吗?好像vue文档中也提到说最好使用这个计算属性 是这样的吗?
图片描述
vue单向数据流这样说的
图片描述

console.log
阅读 1.8k
1 个回答

先说结论,这么说是有道理并推荐的,但是并不绝对,这还是取决对父子组件通讯的理解和使用情况.

父子组件在进行通讯时,数据是单向传递的,这样能隔离父子组件的数据,使用computed可以重新得到一个对象,作为子组件内部数据,在子组件数据变化时,不影响父组件的状态.再就是当props中的数据不符合子组件的格式时,computed也能进行格式转换.

但是,

  1. 在子组件中prop数据不会被改变时,比如只是展示一个数字,那么没必要使用computed,直接使用就可以.
  2. 对于一个数组或对象类型的 prop 来说,在子组件中改变这个对象或数组本身将会影响到父组件的状态, 所以如果需要父子组件通讯的数据同步,不用computed也是可以的。不过官方提供了this.$emit()的方式将子组件数据传递给父组件,所以对这块不熟的话,也是不建议直接使用props的.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题