<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父組件把方法傳遞給子組件</title> <script src="./vue2.6.9.js"></script> </head> <body> <div id="app"> <!-- 父組件向子組件傳遞方法,使用的是事件綁定機制 v-on 當我們自定義了一個事件屬性之后,那么子組件就能夠通過某些方式來調用傳遞進去的這個方法了--> <com2 @func="show"></com2> </div> <template id="templ"> <div> <h1>這是子組件</h1> <input type="button" value="這是子組件中的按鈕,點擊它,觸發傳遞過來的func方法" @click="myclick"/> </div> </template> </body> <script> //定義了一個字面量類型的組件模板對象 var com2 = { template: '#templ',//通過指定一個Id,表示說要去加載這個指定id的template元素中的內容,當做組件的HTML結構 data(){ return { sonmsg:{ name:'張三', age:18 } } }, methods: { myclick (){ //emit '調用,觸發,發射' this.$emit("func",this.sonmsg) } } } var vm = new Vue({ el:'#app', data:{ datamsgFromSon : null, }, methods:{ show(data){ console.log("調用了父組件身上的show方法-----"+data) this.datamsgFromSon = data; console.log(data) } }, components :{ com2 } }) </script> </html>
效果圖