子組件通過$emit方法向父組件發送數據,子組件在父組件的模板中,通過自定義事件接收到數據,並通過自定義函數操作數據
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="vue.js"></script> </head> <body> <!-- 子組件向父組件傳遞數據 --> <div id="box"> <v-parent></v-parent> </div> <!-- 父組件模板 --> <template id="parent"> <div> <span>{{msgParent}}</span> <v-child @child-info="get"></v-child> </div> </template> <!-- 子組件模板 --> <template id="child"> <div> <button @click="send">send</button> <!-- <p>{{msgChild}}</p> --> </div> </template> <script type="text/javascript"> var app = new Vue({ el:'#box', components:{ // 父組件 'v-parent':{ data() { return { msgParent:'hello' } }, template:'#parent', methods:{ get(msg){ this.msgParent = msg } }, // 子組件 components:{ 'v-child':{ data(){ return { msgChild:'child' } }, template:'#child', methods:{ send(){ this.$emit('child-info',this.msgChild) } } } } } } }) </script> </body> </html>
此時點擊子組件模板中的按鈕,父模板中的子組件會接受到數據