今天绑定一个表格时半天无法显示数据,发现是formData绑定错了,写成了reactive,console.log中拿到数据了就是不显示,找了大半天才知道原来要调用.ref才能显示,reactive更多的是传值。
.ref 是用于数据绑定的。在Vue3中,ref被用来创建一个响应式的引用,它可以容纳任何类型的数据,包括基本数据类型和引用数据类型(如对象和数组)。ref返回的是一个带有.value
属性的对象,这个.value
属性可以用来访问和修改其内部的值。 当在Vue组件中使用ref时,可以通过.value
来访问和修改其代表的值。这种设计允许开发者以一种更直观的方式来处理响应式状态,尤其是在涉及到基本数据类型时。此外,由于ref可以容纳任何数据类型,这使得它在处理不同类型数据时提供了更大的灵活性。 ref与reactive的区别在于,reactive专门用于创建响应式的对象和数组,它通过Proxy来实现对对象的响应式处理。使用reactive时,可以直接访问和修改对象的属性,而不需要使用.value
。然而,reactive只能用于对象,如果尝试将基本数据类型(如字符串或数字)传递给reactive,会导致这些数据失去响应性。因此,对于非对象类型的数据,推荐使用ref。 综上所述,ref确实用于数据绑定,并且是Vue3中推荐的声明响应式状态的主要API。它的设计旨在提供一种简单且灵活的方式来处理响应式数据,适用于各种数据类型。而reactive则更多地用于处理复杂的对象和数组,两者各有适用的场景和优势。在选择使用哪种API时,应根据具体的数据结构和需求来决定。