半亩花田i
平时学习的笔记以及写的demo,仅供参考
posts - 65,comments - 2,views - 94458
1、使用前必需引入 ref
1
2
3
4
5
<script setup>
    import {
        ref
    } from 'vue'
</script>
2、定义语法:
1
2
3
4
5
const a= ref(0)
const b = ref(null)
const c = ref({})
const d = ref(false)
const e = ref([])
3、取值、赋值方法:
1
2
3
const num = ref(0)
num.value = 20 // 赋值
const a = num.value // 取值
4、ref在模板中解包的几种场景:
 a) ref在模板中作为顶层属性被访问时,会被自动解包,不需要使用.value取值,如:
1
2
3
4
5
6
7
8
9
10
11
<template>
   <view>{{a}}</view>
</template>
 
<script setup>
    import {
        ref
    } from 'vue'
 
    const a = ref(5)
</script>
 b) 不是顶层属性时,且不参与混合语法,自动解包:
本例中 object.foo 属于子节点,所以不是顶层属性,但是它能正常解包
1
2
3
4
5
6
7
8
9
10
11
<template>
   <view>{{object.foo}}</view>
</template>
 
<script setup>
    import {
        ref
    } from 'vue'
 
    const object = { foo: ref(5) }
</script>
c) 不是顶层属性时,且参与混合语法,无法解包:
在本例中object.foo不是顶层属性,且它参与了计算,所以无法正常解包
1
2
3
4
5
6
7
8
9
10
11
12
<template>
    <!-- 这里混合参与计算,打印结果为:[object Object]1 -->
   <view>{{object.foo+1}}</view>
</template>
 
<script setup>
    import {
        ref
    } from 'vue'
 
    const object = { foo: ref(5) }
</script>
在上例中,如果想正常显示,可以加上.value方式,如:{{object.foo.value+1}}
 
 
posted on   半亩花田i  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 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

点击右上角即可分享
微信分享提示