Vue.js 将数据传递到vue组件
我现在正在学习Vue.js,但我在理解一项相当简单的任务时遇到了一个小问题(可能是我的编程思想太老了)。Vue.js 将数据传递到vue组件,vue.js,Vue.js,我现在正在学习Vue.js,但我在理解一项相当简单的任务时遇到了一个小问题(可能是我的编程思想太老了)。 我用这段代码创建了一个小组件 <template> <div class="tabSelectorRoot"> <ul> <li v-for="(element,index) in elements" v-on:click="changeSelected(index)">
我用这段代码创建了一个小组件
<template>
<div class="tabSelectorRoot">
<ul>
<li v-for="(element,index) in elements" v-on:click="changeSelected(index)">
<a :class="{ 'selected': activeIndex === index }" :data-value="element.value"> {{ element.text }}</a>
</li>
</ul>
<div class="indicator"></div>
</div>
</template>
<script>
export default {
name: "TabSelectorComponent",
data () {
return {
activeIndex : 0,
elements: [
{ 'text':'Images', 'value': 'immagini','selected':true},
{ 'text':'WallArts', 'value': 'wallart'}
]
}
},
created: function () {
},
methods: {
'changeSelected' : function( index,evt) {
if ( index == this.activeIndex) { return; }
this.activeIndex = index;
document.querySelector('.indicator').style.left= 90 * index +'px';
this.$emit('tabSelector:nameChanged',)
}
}
}
</script>
-
我希望通过改变列表中对象的数量来重用该组件,但我不知道如何完成这项简单的任务。Vue中组件之间通信的基本方式是使用属性和事件。在您的情况下,您需要做的是将一个elements
属性添加到父级设置的选项卡SelectorComponent
选项卡选择器组件
export default {
name: "TabSelectorComponent",
props: ["elements"],
data () {
return {
activeIndex : 0
}
},
...
}
在您的家长中:
<tab-selector-component :elements="elementArray"></tab-selector-component>
这在选项卡Selector Component
的元素数组中作为prop
传递的@伯特:你说得对,谢谢。你能回答这个问题而不是评论它,这样我就可以标记为接受了吗?我已经添加到数据中,只是为了清楚那里不再需要数组。请检查它是否符合您的意图。
<tab-selector-component :elements="elementArray"></tab-selector-component>