首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用v-bind对象在子组件中获取道具

如何使用v-bind对象在子组件中获取道具
EN

Stack Overflow用户
提问于 2018-03-18 06:27:31
回答 1查看 3.5K关注 0票数 6

我希望以props的形式传递对象中的所有属性,并使用不带参数的v-bind

但是,我如何才能在子组件中获得props而不必在子组件中声明道具呢?

例如,在下面的代码中,item 是一个对象.

父组件:

代码语言:javascript
复制
<div v-for="item in domArr" :key="item.id">
  <cus-dom v-bind="item"></cus-dom>
</div>

子组件:

代码语言:javascript
复制
<script>
  export default {
    name: 'cusDom',
    props: [],   // HOW TO GET THE props, because I have it empty/no arguments HERE?
    data() {
      return {};
    },
    mounted() {
    }
  }
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-18 06:44:58

即使在使用v-bind时,仍然必须将它们声明为props

如果你不这样做,他们将是$attrs

请参阅下面的演示程序,应该清楚说明。

代码语言:javascript
复制
Vue.component('child', {
  props: ['a'],
  template: `<button @click="go">PROPS AND ATTRS</button>`,
  mounted() {
    this.go()
  },
  methods: {
    go() {
      console.log(
      '$attrs:', JSON.stringify(this.$attrs), '- $props:', JSON.stringify(this.$props),
      '- a:', this.a, '- b:', this.b)
    }
  }
});
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!',
    stuff: {a: 1, b: 2}
  }
})
代码语言:javascript
复制
<script src="https://unpkg.com/vue@2.5.16/dist/vue.min.js"></script>

<div id="app">
  <p>{{ message }}</p>
  <child v-bind="stuff"></child>
</div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49345098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档