1. 程式人生 > 其它 >vue3如何通過ref屬性獲取元素

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