vue3如何通過ref屬性獲取元素


vue2.x中,可以通過給元素添加ref='xxx'屬性,然后在代碼中通過this.$refs.xxx獲取到對應的元素

然而在vue3中時沒有$refs這個東西的,因此vue3中通過ref屬性獲取元素就不能按照vue2的方式來獲取
vue3需要借助生命周期方法,原因很簡單,在setup執行時,template中的元素還沒掛載到頁面上,所以必須在mounted之后才能獲取到元素。



<template>
  <h2>App2</h2>
  <input type="text">---
  <input type="text" ref="inputRef">
</template>

<script>
import { onMounted, ref } from 'vue'
/*
ref獲取元素: 利用ref函數獲取組件中的標簽元素
功能需求: 讓輸入框自動獲取焦點
*/
export default {
  setup() {
    const inputRef = ref(null)
    onMounted(() => {
      console.log(inputRef.value)
      inputRef.value && inputRef.value.focus()
    })
    return {
      inputRef
    }
  },
}
</script>
 
如上代碼, vue3中,所有生命周期方法都抽離出去了,需要用時直接 import。這里導入了一個 onMounted
當界面掛載出來的時候,就會自動執行 onMounted的回調函數,里頭就可以獲取到dom元素
pc上是可以正常輸出的

 

 

如果在uniapp是為空,拿不到的;
用於 父組件調用子組件的方法(是起作用的)
 
查看:
https://www.cnblogs.com/yuzhongyu/p/14076777.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM