vue3?setup語法糖下父組件如何調(diào)用子組件
vue3 setup語法糖下父組件調(diào)用子組件
vue3下,父組件調(diào)用子組件的方法,如果使用了<script setup>
這種寫法,那么子組件方法需要采用defineExpose()
進行修飾,才能被外界調(diào)用。
上代碼:
1、子組件
_pop.vue:
<template> 。。。 </template> <script setup> import { defineExpose } from "vue"; const popIt = () => { 。。。 }; defineExpose({ popIt }); </script>
2、父組件
<template> <pop pTitle="hehe" ref="pop1"></pop> </template> <script setup> import pop from "./_pop"; const pop1 = ref(); pop1.value.popIt(); </script>
vue3 父子組件相互調(diào)用
下面演示均為使用 setup 語法糖的情況!
參考網(wǎng)址:https://cn.vuejs.org/api/sfc-script-setup.html#defineexpose
父組件調(diào)用子組件方法
子組件需要使用defineExpose對外暴露方法,父組件才可以調(diào)用!
1.子組件
<template> <div>我是子組件</div> </template> <script lang="ts" setup> // 第一步:定義子組件的方法 const hello = (str: string) => { console.log('子組件的hello方法執(zhí)行了--' + str) } // 第二部:暴露方法 defineExpose({ hello }) </script>
2.父組件
<template> <button @click="getChild">觸發(fā)子組件方法</button> <!-- 一:定義 ref --> <Child ref="childRef"></Child> </template> <script lang="ts" setup> import { ref } from 'vue'; import Child from '../../components/child.vue'; // 二:定義與 ref 同名變量 const childRef = ref <any> () // 三、函數(shù) const getChild = () => { // 調(diào)用子組件的方法或者變量,通過value childRef.value.hello("hello world!"); } </script>
3.測試結(jié)果
子組件調(diào)用父組件方法
1.父組件
<template> <Child @sayHello="handle"></Child> </template> <script lang="ts" setup> import Child from '../../components/child.vue'; const handle = () => { console.log('子組件調(diào)用了父組件的方法') } </script>
2.子組件
<template> <view>我是子組件</view> <button @click="say">調(diào)用父組件的方法</button> </template> <script lang="ts" setup> const emit = defineEmits(["sayHello"]) const say = () => { emit('sayHello') } </script>
3.測試結(jié)果
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue2+SpringBoot實現(xiàn)數(shù)據(jù)導出到csv文件并下載的使用示例
本文主要介紹了Vue2+SpringBoot實現(xiàn)數(shù)據(jù)導出到csv文件并下載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-10-10詳解VUE Element-UI多級菜單動態(tài)渲染的組件
這篇文章主要介紹了VUE Element-UI多級菜單動態(tài)渲染的組件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04Vue實現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解
這篇文章主要介紹了使用Vue實現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06Element實現(xiàn)動態(tài)增加多個輸入框并校驗
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07VUE+Canvas 實現(xiàn)桌面彈球消磚塊小游戲的示例代碼
這篇文章主要介紹了VUE+Canvas 實現(xiàn)桌面彈球消磚塊小游戲,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04web網(wǎng)頁上實現(xiàn)錄音功能(vue3組件示例)
在Vue項目或網(wǎng)頁上實現(xiàn)文字轉(zhuǎn)換成語音播放功能,通常涉及到語音合成技術(shù),這篇文章主要介紹了web網(wǎng)頁上實現(xiàn)錄音功能(vue3組件示例)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-06-06