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

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

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

前言

在Vue 3中,ref除了用于處理響應式數(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 訪問到組件的實例,以便在父組件中直接調用子組件中暴露的方法或訪問子組件中暴露的數(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)管理的值

除了用于處理響應式數(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 中的一些用法,除了處理響應式數(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>

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

總結

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

相關文章

  • vue中為何方法要寫在methods的里面

    vue中為何方法要寫在methods的里面

    這篇文章主要介紹了vue中為何方法要寫在methods的里面,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue如何安裝使用Quill富文本編輯器

    vue如何安裝使用Quill富文本編輯器

    這篇文章主要為大家詳細介紹了vue如何安裝使用Quill富文本編輯器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Vue中簡單的虛擬DOM是什么樣

    Vue中簡單的虛擬DOM是什么樣

    這些年寫前端vue時經(jīng)常碰到虛擬DOM這個單詞,但都是聽到就算了,左耳進右耳出,知道有這么個東西就完了,因為感覺也沒有影響我實現(xiàn)公司的產(chǎn)品業(yè)務邏輯。今天在這里想花點時間探討下虛擬DOM相關的知識,給自己補補課
    2022-10-10
  • vue中粘貼板clipboard的使用方法舉例

    vue中粘貼板clipboard的使用方法舉例

    在Web應用程序中剪貼板(Clipboard)操作是非常常見的操作之一,這篇文章主要給大家介紹了關于vue中粘貼板clipboard使用方法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • VUE?html5-qrcode實現(xiàn)H5掃一掃功能實例

    VUE?html5-qrcode實現(xiàn)H5掃一掃功能實例

    這篇文章主要給大家介紹了關于VUE?html5-qrcode實現(xiàn)H5掃一掃功能的相關資料,html5-qrcode是輕量級和跨平臺的QR碼和條形碼掃碼的JS庫,集成二維碼、條形碼和其他一些類型的代碼掃描功能,需要的朋友可以參考下
    2023-08-08
  • 編寫Vue項目,如何給數(shù)組的第一位添加對象數(shù)據(jù)

    編寫Vue項目,如何給數(shù)組的第一位添加對象數(shù)據(jù)

    這篇文章主要介紹了編寫Vue項目,如何給數(shù)組的第一位添加對象數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue-cli3全面配置詳解

    vue-cli3全面配置詳解

    這篇文章主要介紹了vue-cli3全面配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue項目報錯Extra?semicolon?(semi)問題及解決

    vue項目報錯Extra?semicolon?(semi)問題及解決

    這篇文章主要介紹了vue項目報錯Extra?semicolon?(semi)問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue 第三方字體圖標引入 Font Awesome的方法

    Vue 第三方字體圖標引入 Font Awesome的方法

    今天小編就為大家分享一篇Vue 第三方字體圖標引入 Font Awesome的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue-virtual-scroller 的使用詳解

    vue-virtual-scroller 的使用詳解

    vue-virtual-scroller是一個高度可定制的虛擬滾動列表插件,它可以在大量數(shù)據(jù)下提供高性能的渲染和滾動,這篇文章主要介紹了vue-virtual-scroller 的使用,需要的朋友可以參考下
    2023-07-07

最新評論