vue父組件向子組件傳遞數據
vue父組件向子組件傳遞數據的方法有四種:props和event、ref、provide和inject、vuex。
1、props和event
父組件向子組件傳遞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將數據傳遞給子組件,子組件則觸發事件,由父組件監聽,並做相應處理。
2、ref
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>
3、provide和inject
官方不推薦在生產環境使用
provide意爲提供,當一個組件透過provide提供了一個數據,那麼它的子孫組件就可以使用inject接受注入,從而可以使用祖先組件傳遞過來的數據。代碼如下:
//child
<template>
<div>{{appName}}</div>
</template>
<script>
export default{
inject:['appName']
}
</script>
// root
export default{
data(){
return {
appName:'Test'
}
},
provide:['appName']
}
4、vuex
vue官方推薦的全局狀態管理插件。
-
excel表格設開啟密碼忘記了怎麼辦
我們在工作中經常會使用到Excel表格,如果這個表格的內容非常重要,並且不能夠輕易外露的話,可以設定一個保護密碼,但是如果表格的密碼忘記了,應該怎麼開啟呢?受保護的Excel文檔是無法修改的,輸入內容就會出現要求輸入密碼的提示框,我們修改檔案的後綴名爲rar,再回車確定...
-
蘋果手機長圖怎麼截圖
1、長截圖辦法一iOS13上新之後自帶的長截圖方法,是在我們瀏覽網頁的時候使用的。操作方法:上音量鍵+開關鍵一起按下,然後點開截好的圖片,選擇“整頁”截圖即可。2、長截圖方法二利用QQ實現長截圖。操作方法:首先就是需要我們開啟QQ,然後試着上音量鍵+開關鍵一起按下...
-
買手機殼送的繞耳機線魚骨頭使用方法
1、魚骨頭收納器正是因爲它的長相設計成了一個魚骨頭的形狀才被成爲魚骨收納器。它分爲三部分,它的魚頭和魚尾分別有兩個斜着的卡扣是用來分別固定耳機頭和耳機插口的。2、繞耳機線時首先我們應該先進行單側的半圈安繞線,固定耳機的插口和耳機頭的方向,接着再用相...
-
mp4是什麼格式
1、MP4其實是個封裝格式,不是編碼格式。簡單理解,它就是個副檔名,裏面的內容是可變的。2、MP4最初是一種音頻格式,和MPEG-4沒有太大的關係,就像MP3和MPEG-3沒有關係一樣。MP3是MPEG-1AudioLayer3的縮寫;而MP4是MPEG-2AAC,完完全全是一種音頻壓縮格式。...