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官方推薦的全局狀態管理插件。
-
微博怎麼取消手機型號
1、點擊設置圖標:首先需要打開手機上的微博軟件,在微博我的頁面裏點擊設置圖標。2、點擊會員專屬設置:然後在手機微博設置裏,找到並點擊會員專屬設置。3、點擊微博來源:然後在會員專屬設置頁面,找到個性設置裏的微博來源。4、點擊不顯示:最後在微博來源設置頁面中,設置...
-
如何在b站獲得硬幣
1、首先我們需要有b站的會員賬號(如果沒有請自行百度如何成爲會員)。然後打開網頁,登錄。隨意點開一個視頻都會有廣告。點擊廣告可以賺取硬幣(但這個靠人品,不一定有。一般可獲得0~0.3個硬幣)2、這個是最普通的方法,就是你每天登錄,就會獲得一個硬幣的獎勵。(還有如果你...
-
蘋果手機相冊怎麼上鎖,蘋果手機相冊怎樣上鎖
1、在手機上下載騰訊手機管家APP,下載完畢點擊打開。2、進入手機管家後,選擇相冊管理。3、點擊加密相冊並進入。4、第一次進入加密相冊會要設置一個個人密碼,或者用戶可以通過指紋識別進入相冊。5、輸入密碼後,密碼如果正確,相冊會自動打開。6、進入相冊後,點擊添加,...
-
怎樣驅除蚊子
被蚊子咬不但很難受,而且蚊子還會傳染疾病,那麼驅除蚊子的方法有哪些呢?一起來看看吧。首先要讓蚊子不願意靠近你,白天出門時可以在身上塗上能驅除蚊子的產品,在暴露的皮膚或者衣物上使用驅蚊劑。如果你白天出門會使用防曬霜,在塗抹防曬霜之後再使用驅蚊劑。部分驅蚊...