亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3基于script?setup語法$refs的使用

 更新時(shí)間:2022年01月25日 09:13:40   作者:快樂編程  
這篇文章主要介紹了vue3基于script?setup語法$refs的使用,<BR>?在用vue3開發(fā)項(xiàng)目的時(shí)候,需要調(diào)用子組件的方法,于是想著用$refs來實(shí)現(xiàn),但是我是使用script?setup語法糖,原先vue2的語法已經(jīng)不適用了。下面我們一起進(jìn)入文章看詳細(xì)內(nèi)容吧</P><P>

一、vue2語法

vue2語法在組件上設(shè)置ref屬性后,在代碼里可以通過 this.$refs.ref值 訪問到對應(yīng)的子組件。

一個(gè)設(shè)置ref值的組件:

<base-input ref="usernameInput"></base-input>


在js代碼中可以通過如下代碼訪問到這個(gè)組件:

this.$refs.usernameInput


可以調(diào)用里面的方法:

// 假設(shè) base-input 組件內(nèi)有方法foo
 
this.$refs.usernameInput.foo();


詳細(xì)使用可以參考底部列出的參考文章。

二、vue3使用

網(wǎng)上找了一些文章比較零散,而且試了下都不能用,但是通過這些文章了解到了一些關(guān)鍵信息,最后整理出如下幾步:

1. 組件設(shè)置ref值

這個(gè)和vue2的類似,父組件調(diào)用子組件的時(shí)候設(shè)置ref值。

<ChildVue ref="childRef" />

2. 組件實(shí)例獲取

設(shè)置完成后,vue3可以通過ref方法獲取。

const childRef = ref();


這邊變量的名字需要和上面ref的一致。如何直接打印childRef,這個(gè)時(shí)候會(huì)是:

undefined

因?yàn)轫撁娼M件還沒有掛載完成,所以需要在掛載完成之后才能正常使用。

onMounted(() => {
    console.log(childRef.value); // Proxy {…}
});


3. 子組件內(nèi)設(shè)置對外公開的變量

上面第2步獲取到子組件實(shí)例后,無法使用子組件內(nèi)的方法,因?yàn)槭褂?code> script setup 的組件默認(rèn)是關(guān)閉的,如果需要公開,需要使用 defineExpose 編譯器宏。

// 子組件代碼
const foo = () => {
  console.log("foo");
}
defineExpose({
  foo
});


父組件內(nèi)調(diào)用:

// 調(diào)用子組件方法
childRef.value.foo(); // foo


這樣就可以調(diào)用到子組件的方法了。

查看childRef.value,也可以看到其中公開的foo方法:

vue3父組件調(diào)用子組件方法

完整參考代碼:

父組件:

<template>
    <ChildVue ref="childRef" />
</template>
 
<script setup lang="ts">
import { ref } from '@vue/reactivity';
import { onMounted } from '@vue/runtime-core';
import ChildVue from './Child.vue';
 
const childRef = ref();
console.log(childRef.value); // undefined
 
onMounted(() => {
    console.log(childRef.value); // Proxy {…}
    // 調(diào)用子組件方法
    childRef.value.foo(); // foo
});
</script>
 
<style>
</style>


子組件:

<template>child demo</template>
 
<script setup lang="ts">
const foo = () => {
  console.log("foo");
}
defineExpose({
  foo
});
</script>
 
<style>
</style>

到此這篇關(guān)于vue3基于script setup語法$refs的使用的文章就介紹到這了,更多相關(guān)vue3  $refs的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue獲取當(dāng)前激活路由的方法

    vue獲取當(dāng)前激活路由的方法

    下面小編就為大家分享一篇vue獲取當(dāng)前激活路由的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • ElementUI動(dòng)態(tài)渲染el-table的實(shí)現(xiàn)過程

    ElementUI動(dòng)態(tài)渲染el-table的實(shí)現(xiàn)過程

    在前端開發(fā)中,表格是不可或缺的一部分,無論是數(shù)據(jù)展示、數(shù)據(jù)錄入,還是數(shù)據(jù)分析,表格都扮演著重要的角色,而在Vue.js生態(tài)系統(tǒng)中,ElementUI提供了一個(gè)強(qiáng)大且靈活的表格組件——el-table,本文將帶你深入了解如何使用ElementUI動(dòng)態(tài)渲染el-table,并詳細(xì)探討其原理及實(shí)現(xiàn)過程
    2024-08-08
  • vue使用axios訪問本地json文件404問題及解決

    vue使用axios訪問本地json文件404問題及解決

    這篇文章主要介紹了vue使用axios訪問本地json文件404問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue基于element的區(qū)間選擇組件

    vue基于element的區(qū)間選擇組件

    這篇文章主要介紹了vue基于element的區(qū)間選擇組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue響應(yīng)式系統(tǒng)的原理詳解

    Vue響應(yīng)式系統(tǒng)的原理詳解

    這篇文章主要為大家介紹了Vue響應(yīng)式系統(tǒng)的原理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • vue2路由中router-view不顯示的原因及踩坑記錄

    vue2路由中router-view不顯示的原因及踩坑記錄

    這篇文章主要介紹了vue2路由中router-view不顯示的原因及踩坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue+better-scroll 實(shí)現(xiàn)通訊錄字母索引的示例代碼

    Vue+better-scroll 實(shí)現(xiàn)通訊錄字母索引的示例代碼

    通訊錄字母索引是常用的一種功能,本文主要介紹了Vue+better-scroll 實(shí)現(xiàn)通訊錄字母索引,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue?+?ele?實(shí)現(xiàn)下拉選擇框和下拉多選選擇框處理方案

    vue?+?ele?實(shí)現(xiàn)下拉選擇框和下拉多選選擇框處理方案

    這篇文章主要介紹了vue?+?ele?實(shí)現(xiàn)下拉選擇框和下拉多選選擇框處理方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Vue3中局部組件和全局組件的使用教程詳解

    Vue3中局部組件和全局組件的使用教程詳解

    這篇文章主要為大家學(xué)習(xí)介紹了Vue3中局部組件和全局組件的使用方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以學(xué)習(xí)一下
    2023-07-07
  • Vue3 組件間通信之mitt實(shí)現(xiàn)任意組件間通信的步驟

    Vue3 組件間通信之mitt實(shí)現(xiàn)任意組件間通信的步驟

    mitt 主要有4個(gè)API:emit(觸發(fā)某個(gè)事件)、on(綁定事件)、off(解綁某個(gè)事件)、all(獲取所有綁定的事件),這篇文章主要介紹了Vue3 組件間通信之mitt實(shí)現(xiàn)任意組件間通信,需要的朋友可以參考下
    2024-05-05

最新評論