vue.js将一个对象的所有属性作为prop进行传递

Posted lhyhappy65

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js将一个对象的所有属性作为prop进行传递相关的知识,希望对你有一定的参考价值。

1、方法一:使用不带参数的v-bind写法

<div id="app"> 
  <child v-bind="todo"></child>
</div>

  v-bind中没有参数,而组件中的props需要声明对象的每个属性

Vue.component(‘child‘, { 
  props: [‘text‘,‘isComplete‘],
  template: ‘<span >{{ text }}  {{isComplete}}</span>‘ 
})
new Vue({
  el: ‘#app‘,
  data: {
    todo: {
      text: ‘Learn Vue‘,
      isComplete: false
    }
  }
})

  显示效果如下

  技术分享图片

2、方法二:使用带参数的v-bind写法

<div id="app"> 
  <child v-bind:todo="todo"></child>
</div>

  v-bind后跟随参数todo,组件中的props需要声明该参数,组件变可以通过todo来访问对象的属性

Vue.component(‘child‘, { 
  props: [‘todo‘],
  template: ‘<span >{{ todo.text }}  {{todo.isComplete}}</span>‘ 
})
new Vue({
  el: ‘#app‘,
  data: {
    todo: {
      text: ‘Learn Vue‘,
      isComplete: false
    }
  }
})

  显示效果如下

  技术分享图片

 

以上是关于vue.js将一个对象的所有属性作为prop进行传递的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js - 如何将 prop 作为 json 数组传递并在子组件中正确使用?

将对象作为参数传递给构造函数并将其属性复制到新对象?

Vue.js2.0中子组件修改父组件传递过来的props,并不影响父组件的原始数据

vue.js(18)--父组件向子组件传值

Vue3 组件传值 props 和 attrs 区别

初学Vue.js:props