首先是父組件內里的數據通報到子組件
這裏用props,props有支持物的意義,能夠理解為橋樑。props要寫在自組件內里。
先定義一個子組件,在組件中註冊props
<template>
<div>
<div>{{message}}(子組件)</div>
</div>
</template>
<script>
export default {
props: {
message: String //定義傳值的範例<br> }
}
</script>
<style>
</style>
在父組件中,引入子組件,並傳入子組件內須要的值
<template>
<div>
<div>父組件</div>
<child :message="parentMsg"></child>
</div>
</template>
<script>
import child from './child' //引入child組件
export default {
data() {
return {
parentMsg: 'a message from parent' //在data中定義須要傳入的值
}
},
components: {
child
}
}
</script>
<style>
</style>
注:這類體式格局只能由父向子通報,子組件不能更新父組件內的data
接下來是子組件的數據通報到父組件
這裏用到了$emit ,emit有發射發出的意義,這就不難理解了
tips: App.vue 父組件 / Hello.vue 子組件
父組件內里的內容
<!–App.vue :–>
<template>
<div id="app">
<hello @newNodeEvent="parentLisen" />
</div>
</template>
<script>
import hello from './components/Hello'
export default {
name: 'app',
'components': {
hello
},
methods: {
parentLisen(evtValue) {
//evtValue 是子組件傳過來的值
alert(evtValue)
}
}
}
</script>
子組件內里的內容
<!–Hello.vue :–>
<template>
<div class="hello">
<input type="button" name="" id="" @click="chilCall()" value="子調父" />
</div>
</template>
<script>
export default {
name: 'hello',
'methods': {
chilCall(pars) {
this.$emit('newNodeEvent', '我是子元素傳過來的')
}
}
}
</script>
$emit經由過程挪用父的要領的體式格局完成了子向父的數據通報