亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue3中怎么使用setup通過ref獲取子組件的屬性

發布時間:2022-07-28 14:06:40 來源:億速云 閱讀:1117 作者:iii 欄目:開發技術

今天小編給大家分享一下Vue3中怎么使用setup通過ref獲取子組件的屬性的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

setup通過ref獲取子組件的屬性

主要依賴defineExpose

子組件通過 defineExpose將數據拋出

<template>
  <div class="test-com">testCom</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const testText = ref('我是子組件的數據')
defineExpose({
  text: testText
})
</script>

父組件通過給子組件綁定ref 然后結合nextTick回調函數獲取子組件的數據

<template>
  <div>
    <TestCom ref="getTestComRef" />
    {{ showText }}
  </div>
</template>
<script lang="ts" setup>
import { nextTick, ref } from 'vue'
import TestCom from './components/TestCom.vue'
const getTestComRef = ref<{
  text: string
}>()
const showText = ref()
nextTick(() => {
  showText.value = getTestComRef.value?.text
})
</script>

效果圖

Vue3中怎么使用setup通過ref獲取子組件的屬性

調用子組件的屬性和方法

今天在寫 vue3 項目時,需要在父組件里面調用子組件的方法,但是打印出來卻是這個樣子:

Vue3中怎么使用setup通過ref獲取子組件的屬性

發現打印出來的數據啥都沒有,難道是代碼問題?

上代碼:

父組件代碼

<template>
  <son ref="sonRef"></son>
</template>
<script setup>
import { onMounted, ref } from "vue";
import Son from "./view/son.vue";
const sonRef = ref(null);
onMounted(() => {
  console.log(sonRef.value);
});
</script>

son 組件代碼

<template>
  <div>子組件</div>
</template>
<script setup>
const a = "555";
const fn = () => {
  console.log("執行了fn");
};
</script>

通過翻閱 vue 文檔發現文檔中寫著一個叫 defineExpose 的 api,是這樣介紹的:

使用 <script setup> 的組件是默認關閉的,也即通過模板 ref 或者 $parent 鏈獲取到的組件的公開實例,不會暴露任何在 <script setup> 中聲明的綁定。

大致意思就是:使用 script setup 語法糖的組件,不會往外暴露任何在該語法糖中聲明的變量,需要使用defineExpose 語法來將你想暴露出去的變量和方法暴露出去

son 組件代碼修改后:

<template>
  <div>子組件</div>
</template>
<script setup>
const a = "555";
const fn = () => {
  console.log("執行了fn");
};
defineExpose({
  a,
  fn,
});
</script>

然后就可以在控制臺看到我們在控制臺打印出了子組件上變量和方法,然后就可以進行調用了

Vue3中怎么使用setup通過ref獲取子組件的屬性

以上就是“Vue3中怎么使用setup通過ref獲取子組件的屬性”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安新县| 永寿县| 阿克| 张家港市| 临颍县| 扶沟县| 沛县| 彩票| 长沙县| 林西县| 上蔡县| 武川县| 呈贡县| 司法| 兴文县| 清涧县| 五大连池市| 琼海市| 河北区| 尉犁县| 兰州市| 徐汇区| 盘山县| 无极县| 凉城县| 嵩明县| 会同县| 鱼台县| 龙海市| 呼伦贝尔市| 阜宁县| 左云县| 温宿县| 安福县| 天祝| 云和县| 苗栗县| 庄浪县| 怀远县| 达日县| 剑河县|