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-04
Vue實現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解
這篇文章主要介紹了使用Vue實現(xiàn)textarea固定輸入行數(shù)與添加下劃線樣式的思路詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
Element實現(xiàn)動態(tài)增加多個輸入框并校驗
本文主要介紹了Element實現(xiàn)動態(tài)增加多個輸入框并校驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
VUE+Canvas 實現(xiàn)桌面彈球消磚塊小游戲的示例代碼
這篇文章主要介紹了VUE+Canvas 實現(xiàn)桌面彈球消磚塊小游戲,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
web網(wǎng)頁上實現(xiàn)錄音功能(vue3組件示例)
在Vue項目或網(wǎng)頁上實現(xiàn)文字轉(zhuǎn)換成語音播放功能,通常涉及到語音合成技術(shù),這篇文章主要介紹了web網(wǎng)頁上實現(xiàn)錄音功能(vue3組件示例)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-06-06

