【发布时间】:2017-08-14 17:25:02
【问题描述】:
假设我有一个带有 VueJS 的基本页面,如下所示:
Vue.component('child', {
template: '<p>{{message}}</p>',
props: ["message"]
});
new Vue({
el: '#theParent',
data() {
return {
message: "It works!"
}
}
});
<script src="https://cdn.jsdelivr.net/vue/2.3.2/vue.min.js"></script>
<div id="theParent">
<child v-bind:message="message"></child>
<child v-bind:message="message"></child>
<child v-bind:message="message"></child>
</div>
It works! 消息按预期显示了 3 次,但如果我在我的 <child> 组件上删除 v-bind:message="message",它就不起作用。由于我所有的<child> 组件都需要来自父级的message 的值,有没有办法在VueJS 组件声明中指定一次,而不是每次在HTML 中添加<child> 时指定?
【问题讨论】:
-
不。您必须明确声明子组件将从父组件接收的道具。 VueJS 中没有隐式继承。
-
没有办法在某个地方而不是每次都这样做吗?如果我有几十个
<child>组件,那么每次都指定它真的很麻烦...... -
子组件的数量是由列表驱动的吗?
-
如果您有很多本质上是迭代的子组件,您可能需要考虑使用
v-for -
@Bert 不,不是。这是我的实际问题的简化示例(在我的实际问题中,
<child>组件中有内容,因此它们是唯一的)。
标签: javascript html vue.js vuejs2