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