【问题标题】:How do I pass object correctly to my vue component?如何正确地将对象传递给我的 vue 组件?
【发布时间】:2018-12-25 10:24:22
【问题描述】:

我最近在学习 Vue,并且我已经阅读了有关 Vue components 的文档。但是,我仍然不明白如何将数据对象传递给道具并将其呈现在组件模板中。

这是我的 jsfiddle link

或者在下面查看我的代码。

Vue.component('greeting', {
  template: `<h1>{{index}}</h1>`,
  props: ['persons']
});

var vm = new Vue({
  el: '#app',
  data: {
    persons: {
      'Mike': 'Software Developer',
      'Nikita': 'Administrator Assistant'
    }
  }
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

<div id="app">
  <greeting v-bind:persons="persons" v-for="(value,key,index) in persons"></greeting>
</div>

【问题讨论】:

    标签: javascript html vue.js


    【解决方案1】:

    一些事情:

    • 模板只能访问列出的道具,不能访问父作用域中的内容,这就是 index 不可用的原因
    • 您将绑定:person="value",因为这是使用persons 的当前迭代项填充的变量
    • 添加另一个prop,'role',以便您可以将person对象的键绑定到它

    见下文:

    Vue.component('greeting', {
      template: "<h1>{{person}} is a {{role}}</h1>",
      props: ['person', 'role']
    });
    
    var vm = new Vue({
      el: '#app',
      data: {
        persons: {
          'Mike': 'Software Developer',
          'Nikita': 'Administrator Assistant'
        }
      }
    });
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script>
    
    <div id="app">
      <greeting :person="value" :role="key" v-for="(value, key, index) in persons" :key="index"></greeting>
    </div>

    【讨论】:

    • 感谢您的建议。你的回答让我很容易理解。我真的很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2021-06-29
    • 2022-11-11
    • 2014-04-02
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多