Vue父組件觸發(fā)子組件中的實現(xiàn)方法
有多種方法可以實現(xiàn)父組件觸發(fā)子組件中的方法,以下是其中兩種常用的方法:
1 通過 ref 取得子組件實例并調(diào)用方法
父組件可以在模板中通過 ref 給子組件命名,然后在父組件中使用 $refs 訪問子組件實例的方法。
<!-- 父組件 --> <template> <div> <button @click="callChildMethod">調(diào)用子組件方法</button> <child-component ref="child"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, methods: { callChildMethod() { this.$refs.child.childMethod(); //不傳參 this.$refs.child.childMethodParam(param); //可以直接向子組件傳遞參數(shù)param } } } </script>
在子組件中,需要在 methods 中定義要被調(diào)用的 childMethod 方法。
<!-- 子組件 --> <template> <div> <!-- 組件內(nèi)容 --> </div> </template> <script> export default { methods: { childMethod() { console.log('子組件方法被調(diào)用') }, childMethodParam(param) { console.log('子組件方法被調(diào)用,并接收到父組件傳遞過來的參數(shù):',param) } } } </script>
2 使用自定義事件
父組件可以在需要觸發(fā)子組件中的方法的時候,通過 $emit 觸發(fā)自定義事件。然后在子組件中監(jiān)聽該事件,在事件回調(diào)函數(shù)中執(zhí)行對應(yīng)的方法。
<!-- 父組件 --> <template> <div> <button @click="callChildMethod">調(diào)用子組件方法</button> <child-component @custom-event="onCustomEvent"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, methods: { callChildMethod() { this.$emit('custom-event') }, onCustomEvent() { console.log('custom-event 事件被觸發(fā)') } } } </script>
在子組件中,需要通過 props 來接收父組件傳遞的自定義事件,并在 created 生命周期中對其進(jìn)行監(jiān)聽。
<!-- 子組件 --> <template> <div> <!-- 組件內(nèi)容 --> </div> </template> <script> export default { props: ['customEvent'], created() { this.$on('custom-event', this.childMethod) }, methods: { childMethod() { console.log('子組件方法被調(diào)用') } } } </script>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners)
這篇文章主要介紹了Vue 父子組件數(shù)據(jù)傳遞的四種方式( inheritAttrs + $attrs + $listeners),需要的朋友可以參考下2018-05-05Vue3使用echarts tree高度自適應(yīng)支持滾動查看功能
這篇文章主要介紹了Vue3使用echarts tree高度自適應(yīng)支持滾動查看功能,文章同通過代碼示例介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-06-06關(guān)于在vue-cli中使用微信自動登錄和分享的實例
本篇文章主要介紹了關(guān)于在vue-cli中使用微信自動登錄和分享的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06