其他分享
首页 > 其他分享> > vue3工具函数,取响应式的变量值,生成一个新的响应式变量,插入响应式数组。

vue3工具函数,取响应式的变量值,生成一个新的响应式变量,插入响应式数组。

作者:互联网

取响应式的变量值,生成一个新的响应式变量,插入响应式数组,这样防止每次插入数组的是同一个响应式变量,导致数组里面有多个元素,但全部是同一个值:var newRefArtName = ref(unref(artName)); 1、isRef() 检查某个值是否为 ref。var res = isRef(artName);//true
2、unref() 如果参数是 ref,则返回内部值,否则返回参数本身。这是 val = isRef(val) ? val.value : val 计算的一个语法糖。
3、toRef() 基于响应式对象上的一个属性,创建一个对应的 ref。这样创建的 ref 与其源属性保持同步:改变源属性的值将更新 ref 的值,反之亦然。
const state = reactive({
  foo: 1,
  bar: 2
})

const fooRef = toRef(state, 'foo')

// 更改该 ref 会更新源属性
fooRef.value++
console.log(state.foo) // 2

// 更改源属性也会更新该 ref
state.foo++
console.log(fooRef.value) // 3

4、toRefs() 将一个响应式对象转换为一个普通对象,这个普通对象的每个属性都是指向源对象相应属性的 ref。每个单独的 ref 都是使用 toRef() 创建的。

const state = reactive({
  foo: 1,
  bar: 2
})

const stateAsRefs = toRefs(state)
/*
stateAsRefs 的类型:{
  foo: Ref<number>,
  bar: Ref<number>
}
*/

// 这个 ref 和源属性已经“链接上了”
state.foo++
console.log(stateAsRefs.foo.value) // 2

stateAsRefs.foo.value++
console.log(state.foo) // 3

  来源:https://cn.vuejs.org/api/reactivity-utilities.html

标签:变量值,value,响应,state,vue3,foo,ref,属性
来源: https://www.cnblogs.com/xsj1989/p/16700810.html