您现在的位置是:首页 > 技术教程 正文

vue3的refs用法

admin 阅读: 2024-03-29
后台-插件-广告管理-内容页头部广告(手机)

前言:

Vue 3的Refs是一种新的API,用于访问DOM元素或组件实例。Refs提供了一个简单的方法来访问DOM元素或组件实例,以便在Vue组件中进行操作和处理。在Vue3中,refs用于获取组件或DOM元素的引用,类似于Vue2中的$refs。但与Vue2不同的是,在Vue3中,refs可以是一个字符串或一个函数。

当refs是一个字符串时,在渲染时会将其关联到相应的元素或组件上,然后可以使用.value来访问它们:

  1. <template>
  2.     <div>
  3.         <input ref="inputRef" />
  4.         <button @click="handleClick">Click mebutton>
  5.     div>
  6. template>
  7. <script>
  8. import { ref } from'vue';
  9. export default {
  10. setup() {
  11. const inputRef = ref(null);
  12. const handleClick = () => {
  13. inputRef.value.focus();
  14. };
  15. return {
  16. inputRef,
  17. handleClick,
  18. };
  19. },
  20. };
  21. script>

当refs是一个函数时,在渲染时会将其传递给组件的setup()函数,并且每当组件重新渲染时都会调用该函数。这使得我们可以动态地创建和更新引用:

  1. <template>
  2.     <div>
  3.         <MyComponent :ref="refHandler" />
  4.     div>
  5. template>
  6. <script>
  7. import { ref, onMounted } from 'vue';
  8. import MyComponent from './MyComponent.vue';
  9. export default {
  10. components: {
  11. MyComponent,
  12. },
  13. setup() {
  14. const refHandler = (el) => {
  15. console.log(el); // 打印组件实例或DOM元素
  16. };
  17.     onMounted(() => {
  18. console.log(refHandler.value);
  19. });
  20. return {
  21. refHandler,
  22. };
  23. },
  24. };
  25. script>

我们使用onMounted生命周期函数,在组件挂载时访问了myRef引用。由于myRef引用与我们的元素相关联,myRef.value将是这个元素的实际DOM元素。我们可以使用这个元素来执行任何我们需要的操作

需要注意的是,当使用函数ref时,如果组件没有被渲染或者已经被销毁,那么被传递给ref的回调函数参数将为null。

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜