1. vue3中refs
在 Vue 3 中,ref
是一个用于创建响应式数据的函数。
它可以帮助你将一个普通的 JavaScript 值转换成响应式的,并且可以追踪这个值的变化。
使用 ref
创建的变量会有一个 .value
属性,通过这个属性你可以获取或修改实际的值。
下面是一些关于如何在 Vue 3 中使用 ref
的基本示例:
1.1. 创建和使用 ref
import { ref } from 'vue'; // 创建一个响应式的计数器 const count = ref(0); // 修改值 count.value++; // 访问值 console.log(count.value); // 输出: 1
1.2. 在组件中使用 ref
当你在 Vue 组件中使用 ref
时,可以在 setup
函数内定义并返回它,这样就可以在模板中访问到该变量了。
<template> <div> <p>Count: {{ count }}</p> <button @click="increment">Increment</button> </div> </template> <script> import { ref } from 'vue'; export default { setup() { const count = ref(0); const increment = () => { count.value++; }; return { count, increment }; } } </script>
1.3. 将 ref 与 DOM 元素关联
ref
还可以用来引用 DOM 元素或者子组件实例。
这种情况下,你需要在模板中的元素上绑定 ref
属性,并在 setup
函数中通过 onMounted
钩子来访问它们。
<template> <div> <input ref="inputRef" type="text"> <button @click="focusInput">Focus Input</button> </div> </template> <script> import { ref, onMounted } from 'vue'; export default { setup() { const inputRef = ref(null); const focusInput = () => { inputRef.value.focus(); }; onMounted(() => { console.log(inputRef.value); // 打印出真实的 DOM 元素 }); return { inputRef, focusInput }; } } </script>
在这个例子中,inputRef
被用来存储 <input>
元素的引用。当点击按钮时,focusInput
方法会被调用,使输入框获得焦点。
记住,对于复杂的对象,你可能需要使用 reactive
来代替 ref
,因为 reactive
可以直接处理整个对象的响应性,而不需要通过 .value
属性来访问其属性。
不过,对于简单类型(如字符串、数字等),推荐使用 ref
。