您好,登錄后才能下訂單哦!
小編給大家分享一下vue如何實現父子組件之間的通信以及兄弟組件的通信功能示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
具體如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net vue父子組件通信、兄弟組件通信</title> <style> *{ margin: 0; padding: 0; list-style: none; } table{ text-align: center; margin:0 auto; } div{ text-align: center; } </style> </head> <body> <div id="app"> <table border="1" cellpadding="0" cellspacing="0"> <tr><td colspan="3">父組件數據</td></tr> <tr><td>name</td><td>{{name}}{{ff()}}</td><td><input type="text" v-model="name"></td></tr> <tr><td>age</td><td>{{age}}{{ff()}}</td><td><input type="text" v-model="age"></td></tr> </table> <v-son :son-name="name" :son-age="age" @sza="gg"></v-son> </div> <template id="son"> <div> <button @click="sonChange">子組件按鈕</button> <table border="1" cellpadding="0" cellspacing="0"> <tr><td colspan="3">子組件數據</td></tr> <tr><td>name</td><td>{{sonName}}</td><td><input type="text" v-model="sonName"></td></tr> <tr><td>age</td><td>{{sonAge}}</td><td><input type="text" v-model="sonAge"></td></tr> </table> <g-son :g-name="sonName" :g-age="sonAge"></g-son> </div> </template> <template id="vgson"> <div> <button @click="gchan">孫子組件按鈕</button> <table border="1" cellpadding="0" cellspacing="0"> <tr><td colspan="3">孫子組件數據</td></tr> <tr><td>name</td><td>{{gName}}</td><td><input type="text" v-model="gName"></td></tr> <tr><td>age</td><td>{{gAge}}</td><td><input type="text" v-model="gAge"></td></tr> </table> </div> </template> </body> <script src="https://cdn.bootcss.com/vue/2.4.4/vue.min.js"></script> <script> var bus=new Vue(); const app=new Vue({ el:"#app", data:{ name:"keep", age:"28" }, methods:{ gg(val1,val2){ this.name=val1 this.age=val2 }, ff(){ bus.$on("suibian", (val1,val2)=> { this.name=val1; this.age=val2 }) } }, components:{ "vSon":{ template:"#son", methods:{ sonChange(){ this.$emit("sza",this.sonName,this.sonAge) } }, props:["sonName","sonAge"], components:{ "gSon":{ template:"#vgson", props:["gName","gAge"], methods:{ gchan(){ bus.$emit("suibian",this.gName,this.gAge); }, } } }, } } }) </script> </html>
這里使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,可得如下運行效果:
看完了這篇文章,相信你對“vue如何實現父子組件之間的通信以及兄弟組件的通信功能示例”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。