0
我有顯示在Vue公司定義的陣列的元件下列工作的代碼:如何在組件中使用Vue VM變量?
var vm = new Vue({
el: "#root",
data: {
numbers: [1, 2, 3]
}
})
<div id="root">
<div v-for="number in numbers">{{number}}</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.js"></script>
我現在要內div
移動到template
。下面的代碼是什麼,我想會的工作:
Vue.component(
'numbers', {
template: "#templ"
}
)
var vm = new Vue({
el: "#root",
data: {
numbers: [1, 2, 3]
}
})
<div id="root">
<numbers></numbers>
</div>
<template id="templ">
<div v-for="number in numbers">{{number}}</div>
</template>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.js"></script>
這就提出了在控制檯
[Vue公司提醒]:屬性或方法「數字」沒有定義上在渲染期間引用 實例。確保在數據選項中聲明反應性數據屬性 。 (以組件<號發現>)
這是否意味着vm.numbers
不可用的組件?我應該如何訪問v-for
和小鬍子表達式的這些數據?
我懷疑,我應該使用props
:
Vue.component(
'numbers',
{
template: "#templ",
props: ['numbers']
}
)
,並相應修改HTML:
<numbers numbers="numbers"></numbers>
但這種方法將字符串 「數字」,而不是vm.numbers
還可以安裝[VUE-devtools](通過https://github.com/vuejs/vue-devtools)來了解各種組件下可用的道具/數據對象。這在開發過程中非常有幫助。 – Mani