您好,登錄后才能下訂單哦!
本篇內容介紹了“Vue中父組件怎么向子組件傳遞數據”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
父組件向子組件傳遞props數據,子組件通過觸發事件向父組件回傳數據,代碼如下:
//子組件 <template> <div @click="changeName('YYY')">{{name}}</div> </template> <script> export default{ props:['name'],//or props:{name:{type:String,default:''}} methods:{ //不能在子組件修改props數據,應觸發事件讓父組件處理 changeName(newName){ this.$emit('changeName',newName) } } } </script> //父組件 <template> <div> <child-comp :name="name" @changeName="changeName"></child-comp> </div> </template> <script> import childComp from 'path' export default{ data(){ return {name:'XXX'} }, components:{ childComp }, methods:{ changeName(newName){ this.name = newName; } } } </scritp>
以上就是一個完整的流程,父組件通過props將數據傳遞給子組件,子組件則觸發事件,由父組件監聽,并做相應處理。
ref屬性可定義在子組件或原生DOM上,如果在子組件上,則指向子組件實例,如果在原生DOM上,則指向原生DOM元素(可以用做元素選擇,省去querySelector的煩惱)。
傳遞數據的思路:在父組件內通過ref獲取子組件實例,然后調用子組件方法,并傳遞相關數據作為參數。代碼如下:
//子組件 <template> <div>{{parentMsg}}</div> </template> <script> export default{ data(){ return { parentMsg:'' } }, methods:{ getMsg(msg){ this.parentMsg = msg; } } } </script> //父組件 <template> <div> <child-comp ref="child"></child-comp> <button @click="sendMsg">SEND MESSAGE</button> </div> </template> <script> import childComp from 'path' export default{ components:{ childComp }, methods:{ sendMsg(){ this.$refs.child.getMsg('Parent Message'); } } } </scritp>
provide意為提供,當一個組件通過provide提供了一個數據,那么它的子孫組件就可以使用inject接受注入,從而可以使用祖先組件傳遞過來的數據。代碼如下:
//child <template> <div>{{appName}}</div> </template> <script> export default{ inject:['appName'] } </script> // root export default{ data(){ return { appName:'Test' } }, provide:['appName'] }
“Vue中父組件怎么向子組件傳遞數據”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。