不理解为什么VUE中已经props: ['item']传进子组件的的数据,还需要在模板上再来一次v-bind

https://cn.vuejs.org/v2/guide...

与绑定到任何普通的 HTML 特性相类似,我们可以用 v-bind 来动态地将 prop 绑定到父组件的数据。每当父组件的数据变化时,该变化也会传导给子组件:

<div>
  <input v-model="parentMsg">
  <br>
  <child v-bind:my-message="parentMsg"></child>
</div>

难道props:['item']只是完成初始化?并且父组件中的数据,也是单向传入子组件不是么?不需要双向数据绑定.

阅读 2.7k
3 个回答

子组件中的props,只是一个声明,声明这个组件可以接受那些参数.

比如说子组件child中声明了'my-message'这个属性

props:{
  my-message:{
    type:string
  }
}

才能向组件中像这样传值

<child v-bind:my-message="parentMsg"></child>
<div>
  <input v-model="parentMsg">
  <br>
  <child :my-message="parentMsg"></child>
</div>

child 组件里面声明 props是为了告诉要使用这个组件的人

  • 我能接受哪些参数
  • 我要的参数哪些是必填的
  • 我要的参数的类型是什么样的类型
  • 绑定值的时候要根据我定义的参数名称来传
  • 你可以不传但是你传了就要按照我说的来
// 子组件定义了 msg
// 在调用当前组件的时候, my-message 参数是必须要传的,传的值必须是字符串类型的
props: {
    my-message: {
        type: String,
        default: ``,
        required: true
    }
}

这是我的理解,不知道能不能帮助到你

不在模板里传一次,子组件怎么知道item是什么呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题