最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3中ref的用法舉例總結(jié)(避免混淆)

 更新時間:2023年10月14日 11:11:27   作者:科科寫代碼  
這篇文章主要給大家介紹了關(guān)于Vue3中ref的用法舉例總結(jié)的相關(guān)資料,ref()接受一個內(nèi)部值,返回一個響應(yīng)式的可更改的ref對象,此對象只有一個指向其內(nèi)部值的屬性.value,需要的朋友可以參考下

前言

在Vue 3中,ref除了用于處理響應(yīng)式數(shù)據(jù)外,在 Vue 3 中 ref 還可以用于訪問組件中的 DOM 元素、組件實例以及存儲任何需要在組件中進行狀態(tài)管理的值。下面分別介紹這些用法:

1. 訪問 DOM 元素

通過 ref 可以訪問到在組件中定義的 DOM 元素,例如:input、div、img 等??梢允褂?$refs 屬性訪問到這些元素。

<template>
  <div>
    <input ref="myInput" type="text">
    <button @click="focusInput">Focus Input</button>
  </div>
</template>
<script>
import { ref } from 'vue'
export default {
  setup() {
    const myInput = ref(null)
    function focusInput() {
      myInput.value.focus()
    }
    return {
      myInput,
      focusInput
    }
  }
}
</script>

2. 訪問組件實例

可以使用 ref 訪問到組件的實例,以便在父組件中直接調(diào)用子組件中暴露的方法或訪問子組件中暴露的數(shù)據(jù)。

<template>
  <div>
    <Child ref="childComponent" />
    <button @click="callChildMethod">Call Child Method</button>
  </div>
</template>
<script>
import Child from './Child.vue'
export default {
  components: {
    Child
  },
  setup() {
    const childComponent = ref(null)
    function callChildMethod() {
      childComponent.value.myMethod()
    }
    return {
      childComponent,
      callChildMethod
    }
  }
}
</script>

3. 存儲任何需要在組件中進行狀態(tài)管理的值

除了用于處理響應(yīng)式數(shù)據(jù),ref 還可以用于存儲任何需要在組件中進行狀態(tài)管理的值,例如:定時器 ID、請求狀態(tài)等等。

<template>
  <div>
    <p v-if="isLoading">Loading...</p>
    <button @click="fetchData">Fetch Data</button>
  </div>
</template>
<script>
import { ref } from 'vue'
export default {
  setup() {
    const isLoading = ref(false)
    const timerId = ref(null)
    function fetchData() {
      isLoading.value = true
      timerId.value = setTimeout(() => {
        isLoading.value = false
        clearTimeout(timerId.value)
      }, 3000)
    }
    return {
      isLoading,
      fetchData
    }
  }
}
</script>

這些都是 ref 函數(shù)在 Vue 3 中的一些用法,除了處理響應(yīng)式數(shù)據(jù)之外,它還可以訪問 DOM 元素、組件實例以及存儲任何需要在組件中進行狀態(tài)管理的值,使得 Vue 3 變得更加靈活和方便。

補充:獲取 v-for 遍歷的 DOM 或者 組件

<template>
  <ul>
    <li 
      v-for="item in cityList" 
      :key="item.id" 
      :ref="getDom">
      {{item.city}}
    </li>
  </ul>
</template>
<script>
import { onMounted, reactive} from 'vue';
export default {
  setup(){
    const cityList = reactive([
      { city:'武漢', id: '027'},
      { city:'南京', id: '025'},
      { city:'重慶', id: '023'},
    ]);
    // 1.定義一個空數(shù)組,接收所有的dom
    const lis = [];
    // 2. 定義一個函數(shù),往空數(shù)組push dom
    const getDom = (el) => {
      lis.push(el);
    }
    onMounted(() => {
      console.log(lis,lis[0])
    })
    return {
      cityList,
      getDom,
    } 
  }
}
</script>

總結(jié): 先定義一個空數(shù)組,再定義一個函數(shù)獲取元素,并把該函數(shù)綁定到 ref 上(必須動態(tài)綁定),最后在函數(shù)中可以通過參數(shù)得到單個元素,這個元素一般可以放到數(shù)組中。

總結(jié)

到此這篇關(guān)于Vue3中ref的用法舉例總結(jié)的文章就介紹到這了,更多相關(guān)Vue3中ref用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3自定義動態(tài)不同UI組件篩選框案例

    vue3自定義動態(tài)不同UI組件篩選框案例

    動態(tài)組件是一種在Vue中根據(jù)條件或用戶輸入來動態(tài)渲染不同組件,本文主要介紹了vue3自定義動態(tài)不同UI組件篩選框案例,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • vue3實現(xiàn)動態(tài)添加路由

    vue3實現(xiàn)動態(tài)添加路由

    這篇文章主要介紹了vue3實現(xiàn)動態(tài)添加路由方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue中this.$parent的使用方式

    vue中this.$parent的使用方式

    這篇文章主要介紹了vue中this.$parent的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 關(guān)于vue項目vue-cli-service啟動報錯失敗問題的解決方法

    關(guān)于vue項目vue-cli-service啟動報錯失敗問題的解決方法

    前端拉取代碼后,想要運行代碼的時候可以能遇到啟動報錯的問題,這里我們只針對于vue-cli-service報錯項來說,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-08-08
  • Vue+Koa2+mongoose寫一個像素繪板的實現(xiàn)方法

    Vue+Koa2+mongoose寫一個像素繪板的實現(xiàn)方法

    這篇文章主要介紹了Vue+Koa2+mongoose寫一個像素繪板的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue中正確使用Element-UI組件的方法實例

    Vue中正確使用Element-UI組件的方法實例

    這篇文章主要給大家介紹了關(guān)于Vue中正確使用Element-UI組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • vue3使用uView與uv-ui的詳細步驟

    vue3使用uView與uv-ui的詳細步驟

    文章介紹了如何在Vue3項目的uni-app中集成和使用uViewPlus和uv-ui兩個UI組件庫,詳細描述了環(huán)境準備、安裝組件庫、全局配置、組件使用、自定義主題以及常見問題解決等步驟,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • vue3 pinia使用及持久化注冊

    vue3 pinia使用及持久化注冊

    本文介紹了Pinia的使用方法及如何實現(xiàn)狀態(tài)持久化存儲,首先,介紹了Pinia的安裝和在main.ts中的掛載,介紹了getters和actions的使用方法,最后,詳細說明了如何通過Pinia-plugin-persistedstate插件實現(xiàn)Pinia狀態(tài)的持久化處理,包括插件的安裝、配置和在main.ts文件中的注冊
    2024-10-10
  • 淺析Vue中拆分視圖層代碼的5點建議

    淺析Vue中拆分視圖層代碼的5點建議

    這篇文章主要介紹了Vue中拆分視圖層代碼的5點建議,下面就如何進行腳本代碼拆分提供一些思路,有一些可能是很基本的原則,為盡可能完整就放在一起,你并不需要從最開始就采納所有的建議。需要的朋友可以參考下
    2019-08-08
  • Element中el-select下拉框?qū)崿F(xiàn)選中圖標并回顯圖標

    Element中el-select下拉框?qū)崿F(xiàn)選中圖標并回顯圖標

    本文主要介紹了Element中el-select下拉框?qū)崿F(xiàn)選中圖標并回顯圖標,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12

最新評論

望奎县| 六盘水市| 乌兰县| 宾阳县| 晋中市| 彭阳县| 颍上县| 枣庄市| 宣威市| 澄迈县| 灵川县| 兴隆县| 莱芜市| 台安县| 璧山县| 辽阳市| 芒康县| 鄂州市| 榆树市| 陆川县| 曲阜市| 会昌县| 个旧市| 吉隆县| 麦盖提县| 余姚市| 措美县| 讷河市| 都昌县| 拜城县| 麻栗坡县| 佳木斯市| 博罗县| 江山市| 文山县| 武汉市| 镶黄旗| 丰都县| 江津市| 延庆县| 浮梁县|