您好,登錄后才能下訂單哦!
小編給大家分享一下vue組件之間相互傳遞數據如何實現,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
1、子組件給父組件傳遞數據
<body> <div id="app"> 父組件:{{total}} <br> <son-component v-bind:total="total"></son-component> </div> <script> Vue.component('son-component',{ template:'<div>子組件:{{total}}+{{num}}={{add}}</div>', props:{ total:Number }, data(){ return { num:10 } }, computed:{ add:function(){ return num=this.total+this.num } } }) var app=new Vue({ el:'#app', data:{ total:1 }, }) </script> </body>
通過v-bind動態綁定父組件中要傳遞的數據,子組件通過props屬性接收父組件傳遞的數據。
2.父組件給子組件傳遞數據
<body> <div id="app"> <son-component v-on:change="getData"></son-component> <br> {{total}} </div> <script> Vue.component('son-component',{ template:'<button v-on:click=sendData>點擊我向父組件傳值</button>', data(){ return{ count:1 } }, methods:{ sendData:function(){ this.$emit('change',this.count) } } }) var app=new Vue({ el:'#app', data:{ total:1 }, methods:{ getData:function(value){ this.total=this.total+value } } }) </script> </body>
自定義一個事件,在子組件中通過this.$emit()觸發自定義事件并給父組件傳遞數據,在父組件中監聽自定義事件并接收數據。
3.非父子組件之間的通信
<body> <div id="app"> <a-component></a-component> <b-component></b-component> </div> <script> Vue.component('a-component',{ template:` <div> <span>a組件的數據:{{num}}</span><br> <button v-on:click="sendData">擊我向b組件傳遞數據</button> </div> `, data(){ return { num:1 } }, methods:{ sendData:function(){ this.$root.bus.$emit('change',this.num) } } }) Vue.component('b-component',{ template:` <div>b組件接收a組件數據后相加的數據:{{count}}</div> `, data(){ return { count: 10 } }, created:function(){ this.$root.bus.$on('change',(value)=>{ //alert(value) this.count=this.count+value }) } }) var app=new Vue({ el:'#app', data:{ bus:new Vue() }, }) </script> </body>
看完了這篇文章,相信你對vue組件之間相互傳遞數據如何實現有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。