上次利用 子組件去行父組件方法(mothods) 來去完成父組件方法的執行,這次我們反過來做
如父組件去執行子組件的工作。
有時父組件在執行時,並且一併要子組件也執行方法,這時就得上了
parents.vue
![2017-10-22[11-42-(57)].jpg 2017-10-22[11-42-(57)].jpg](https://pic.pimg.tw/goliimage/1508644080-1979595854_n.jpg)
<template lang="pug">
div
a(
v-on:click="updateItem"
)
app-child(
ref="appChild"
)
</template>
<script>
import Child from './Child.vue'
export default{
components: {
appChild: Child,
},
methods: {
updateItem(){
/** 執行子組件 methods*/
this.$refs.appChild.$emit('update')
}
}
}
</script>
child.vue
![2017-10-22[11-43-(12)].jpg 2017-10-22[11-43-(12)].jpg](https://pic.pimg.tw/goliimage/1508644080-4069764137_n.jpg)
<template lang="pug">
div
p Child
</template>
<script>
export default{
methods: {
updateClick(){
// Do Something
}
},
mounted(){
this.$on('update', function(){
this.updateClick()
});
},
}
</script>
利用 ref 方式,就可以達成這樣的要求!
更正:
貼上的parent.vue 圖片裡 的 this.$refs.appSelfForm.$emit('update') 是錯的,應該為 this.$refs.appChild.$emit('update')
請先 登入 以發表留言。