1. 程式人生 > >組件傳值-子組件通過事件調用向父組件傳值

組件傳值-子組件通過事件調用向父組件傳值

通過 .data app 方法 按鈕 sca input func body


<!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./js/vue-2.4.0.js"></script> </head>
<body> <div id="app"> <!-- 父組件向子組件傳遞方法,使用的是 事件綁定機制:v-on ,當我們自定義了一個事件屬性之後,那麽子組件就能夠,通過某些方式,來調用傳遞進去的這個方法了 --> <com2 @func="show"></com2> </div> <template id="tmpl"> <div> <h1>這是子組件</h1> <input type="button" value="這是子組件中的按鈕,點擊它,觸發父組件傳遞過來的 func 方法" @click="myclick"> </div> </template>
<script> //定義了一個字面量類型的 組件模板對象 var com2={ template:‘#tmpl‘,//通過指定了一個ID 表示說,要去加載 這個指定ID 的template 元素中的內容,當做 組件的HTML 結構 data(){ return{ sonmsg:{name:‘小頭兒子‘,age:6} } }, methods:{ myclick(){ //當點擊子組件的按鈕的時候,如何拿到父組件傳遞過來的 func 方法,並調用這個方法? //emit 英文原意:觸發,調用,發射的意思 //this.$emit(‘func123‘,123,456) this.$emit(‘func‘,this.sonmsg) } } } //創建 Vue 實例,得到 ViewModel var vm=new Vue({ el:‘#app‘, data:{ datamsgFormSon:null }, methods:{ show(data){ //console.log(‘調用了父組件身上的 show 方法:---‘+data) //console.log(data): this.datamsgFormSon=data } }, components:{ com2 } }) </script> </body> </html>

組件傳值-子組件通過事件調用向父組件傳值