2
免責聲明:我在試圖閱讀文檔之前打開這個問題。如何將數據傳遞給Vue JS組件?
我有這個組件:
<template>
<accordion id="facilities-menu" :one-at-atime="true">
<template v-for="facilities in facilitiesGroups">
<panel class="accordion-toggle" :header="`Facilities #${$index+1}`" :is-open="$index === 0">
<ul>
<li v-for="facility in facilities">
{{facility}}
</li>
</ul>
</panel>
</template>
</accordion>
</template>
<style lang="scss" scoped>
@import "../../../styles/theme-colors.scss";
.panel {
background: #5E6466;
border: none;
}
</style>
<script>
import { accordion, panel } from 'vue-strap'
module.exports = {
components: {
accordion, panel
},
data() {
return {
'facilitiesGroups': [['Continente Alfragide', 'Jumbo Almada', 'Portugália'], ['Pingo Doce', 'Lidl', 'Allegro'], ['Casa']]
}
}
}
</script>
然後,我實例化這個組件是這樣的:
<template>
<div class="user">
<user></user>
</div>
<facilities></facilities>
</template>
<style lang="scss" scoped>
@import "../../../styles/theme-colors";
.user {
width: 100%;
height: auto;
margin-top: 8%;
margin-bottom: 5%;
}
</style>
<script>
import User from './userProfile'
import Facilities from './groupedFacilities'
module.exports = {
components: {
'user': User,
'facilities': Facilities
}
}
</script>
但是,可以看到,在第一部分,我定義數據爲{ 'facilitiesGroups': [['Continente Alfragide', 'Jumbo Almada', 'Portugália'], ['Pingo Doce', 'Lidl', 'Allegro'], ['Casa']] }
。但是我希望這是作爲參數傳遞的,而不是像現在這樣在組件中靜態定義。
我已閱讀關於如何完成這項工作的文檔here。但他們的榜樣......
Vue.component('child', {
// declare the props
props: ['msg'],
// the prop can be used inside templates, and will also
// be set as `this.msg`
template: '<span>{{ msg }}</span>'
})
...酷似什麼什麼,我有我的代碼......我甚至不使用Vue.component()的任何地方!
我如何使用與Vue JS編碼的不同「風格」(我從their boilerplate開始)?
如何將Vue JS官方文檔映射到此「樣式」?
如何將該數組作爲參數/屬性傳遞?
謝謝!
嘗試將「props」添加到您的'module.exports'對象。當文件被處理時,我認爲它變成了'Vue.component'。 –
您沒有使用不同的編碼風格,所有的.vue文件都是組件。所以你正在創建組件。請參閱:https://vuejs.org/guide/application.html – Deepak