npm install -g vue-cli
vue init webpack vue-demo
cd vue-demo
npm install
npm run dev
在Child.vue中建立props,用於接收父組件傳遞的值vue
<template> <div> <div v-for="(item,key) of c" :key="key"> {{key}}: {{item}} </div> </div> </template> <script> export default { name: 'child', props: { c: Array } } </script> <style scoped> </style>
在Home.vue中註冊Child組件,並在template的div標籤中添加home-child標籤,標籤中使用v-bind
指令綁定c。子組件經過props就能夠接受到這個父組件傳遞的值。webpack
<template> <div class="hello"> <home-child v-bind:c="c"></home-child> </div> </template> <script> import HomeChild from '@/components/common/Child' export default { name: 'home', components: { HomeChild }, data () { return { c:[1,2,3] } } } </script> <style scoped> </style>
結果
web
給按鈕綁定點擊事件ChildClick
在事件的函數中使用$emit來觸發一個自定義事件,並傳遞一個參數,這個參數就是子組件要傳遞給父組件的值。vue-cli
<template> <div> <div v-for="(item,key) of c" :key="key"> {{key}}: {{item}} </div> <button v-on:click="ChildClick">點擊向父組件傳值</button> <span>{{data}}</span> </div> </template> <script> export default { name: 'child', props: { c: Array, data: String }, methods: { ChildClick: function () { this.$emit("ListenChild","I am child.vue") } } } </script> <style scoped> </style>
在父組件中的home-child標籤中監聽該自定義事件,並添加一個響應該事件的方法ShowChild。npm
<template> <div class="hello"> <home-child v-bind:c="c" :data="data" v-on:ListenChild="ShowChild"></home-child> </div> </template> <script> import HomeChild from '@/components/common/Child' export default { name: 'Home', components: { HomeChild }, data () { return { c:[1,2,3], data: " " } }, methods: { ShowChild: function (data) { this.data = data console.log("data:" + data) } } } </script> <style scoped> </style>
結果:
函數
點擊按鈕後:
this