父子組件的傳值,在Vue官方也寫得很清楚,父組件中使用v-bind綁定傳送,子組件使用props接收。
父組件通過v-bind綁定數據:
<template>
<router-view :yourdata="yourdata"></router-view>
</template>
<script>
export default {
data:function() {
return {
yourdata:"這是一段測試文字。",
}
}
}
</script>
子組件使用props接收數據:
<template>
<div>{{yourdata}}</div>
</template>
<script>
export default {
props: ['yourdata']
}
</script>
但,如果父組件的yourdata是一個動態的數據,比如是使用axios動態請求的數據,那么這個數據是不會在子組件中變更的,那么就要用到watch:
<template>
<div>{{newdata}}</div>
</template>
<script>
export default {
data:function(){
return{
newdata:"",
}
},
props: ['yourdata'],
watch:{
yourdata:function (newVal,oldVal) {
this.newdata=newVal;//newVal就是獲取的動態新數據,賦值給newdata
}
}
}
</script>
快去嘗試一下吧~
