posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
取响应式的变量值,生成一个新的响应式变量,插入响应式数组,这样防止每次插入数组的是同一个响应式变量,导致数组里面有多个元素,但全部是同一个值: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 的值,反之亦然。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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() 创建的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

posted on   邢帅杰  阅读(418)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示