props --> properties (屬性)數組
如何進行父子組件通訊app
props的值由兩種方式this
方式二:對象,對象能夠設置傳遞時的類型,也能夠設置默認值等
父傳子code
<div id="app"> <cpn v-bind:movies="movies"></cpn> </div> <template id="cpn"> <div>
{{movies}}component
</div> </template> <script> //父傳子:props var cpn = { template: '#cpn', props: ['movies'] } var app = new Vue({ el: '#app', data: { movies: ['海王', '大海', '海水'] }, components: { cpn } }) </script>
子傳父對象
何時要自定義事件
自定義事件的流程ip
在父組件中,經過v-on來監聽子組件事件字符串
<!-- 父組件模板 --> <div id="app"> <cpn @item-click="cpnClick"></cpn> </div> <!-- 子組件模板 --> <template id="cpn"> <div> <button v-for="item in categories" @click="btnclick(item)"> {{item.name}} </button> </div> </template> <script> //子組件 const cpn = { template: '#cpn', data() { return { categories: [{ id: 'aaa', name: '熱門推薦' }, { id: 'bbb', name: '手機數碼' }, { id: 'ccc', name: '家用家電' }, { id: 'ddd', name: '電腦辦公' }, ] } }, methods: { btnclick(item) { //發射事件:自定義事件 this.$emit('item-click', item) } } } // 父組件 var app = new Vue({ el: '#app', components: { cpn }, methods: { cpnClick(item) { console.log('cpnClick', item); } } }) </script>