Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

vue3 动态ref

作者:龙之灬殇   发布日期:2025-11-20   浏览:67

<template>
  <div>
    <input v-if="showInput" ref="dynamicRef" type="text" />
    <button @click="toggleInput">Toggle Input</button>
    <button @click="focusInput">Focus Input</button>
  </div>
</template>

<script>
import { ref, onMounted } from 'vue';

export default {
  setup() {
    const showInput = ref(true);
    let dynamicRef = ref(null);

    const toggleInput = () => {
      showInput.value = !showInput.value;
    };

    const focusInput = () => {
      if (dynamicRef.value) {
        dynamicRef.value.focus();
      }
    };

    // Ensure the ref is properly set when the input is rendered
    onMounted(() => {
      if (dynamicRef.value) {
        dynamicRef.value.focus();
      }
    });

    return {
      showInput,
      dynamicRef,
      toggleInput,
      focusInput,
    };
  },
};
</script>

解释说明:

  1. 动态 ref:

    • 在 Vue 3 中,ref 可以用于获取 DOM 元素或子组件的实例。在这个例子中,我们使用 ref 来获取一个动态显示和隐藏的输入框元素。
  2. 模板部分:

    • 使用 v-if 控制输入框的显示与隐藏。
    • 绑定 ref="dynamicRef" 到输入框元素,以便在 JavaScript 中访问它。
    • 提供两个按钮:一个用于切换输入框的显示状态,另一个用于将焦点设置到输入框上。
  3. 脚本部分:

    • 使用 ref 创建响应式变量 showInputdynamicRef
    • toggleInput 方法用于切换 showInput 的值,从而控制输入框的显示与隐藏。
    • focusInput 方法检查 dynamicRef 是否存在,并调用其 focus() 方法将焦点设置到输入框上。
    • onMounted 钩子确保在组件挂载时,如果输入框存在,则自动聚焦。

通过这种方式,你可以实现对动态生成的 DOM 元素的引用和操作。

上一篇:vue 插件

下一篇:vue钩子函数

大家都在看

vue.js devtools用法

vue js for循环

highlight.js vue

vue.config.js 配置

vue.config.js 配置代理

vue.config.js configu

node.js vue

vue3组件传值的方式

vue3 子路由

vue3 router传参

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站