vue3学习ref 、isRef、shallowRef、triggerRef

文章介绍了Vue3中用于响应式编程的关键API,包括ref用于创建响应式可变引用,isRef判断是否为ref对象,shallowRef创建浅层响应式引用,以及triggerRef用于在浅层引用的内部值深度变更后触发依赖更新。
摘要由CSDN通过智能技术生成

vue3学习fef全家桶

ref

接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象仅有一个 .value property,指向该内部值。

<template>
  <div>
    <button @click="change">修改</button>
    <div>{{ message }}</div>
  </div>
</template>
 
<script setup lang="ts">
import {ref} from "vue"
//这种写法无法被响应式修改,只会修改值,不会响应页面
let message = "hello world"
//使用ref
let message2 = ref("hello world")
const change= () => {
   message = "change hello world"
   message2.value = "change hello world"
}
</script>

isRef

判断是不是一个ref对象

<script setup lang="ts">
import {ref,isRef } from "vue"
let message = "hello world"
let message2 = ref("hello world")
const change= () => {
 console.log(isRef(message )); //false
 console.log(isRef(message2 )); //true
}
</script>

shallowRef

创建一个跟踪自身 .value 变化的 ref,是浅层响应式数据。

<template>
  <div>
    <button @click="change">修改</button>
    <div>{{ message }}</div>
  </div>
</template>
 
<script setup lang="ts">
import {shallowRef } from "vue"
let message = shallowRef({
	res:"hello world",
})
const change= () => {
   message.value.res = "change hello world"  //不会进行监听修改
    message.value= {
		res:"change hello world",//会进行监听修改
	}  
}
</script>

triggerRef

官方解释:强制触发依赖于一个浅层 ref 的副作用,这通常在对浅引用的内部值进行深度变更后使用。
意思是,在可以将浅层的ref,深层次的更新。

<template>
  <div>
    <button @click="change">修改</button>
    <div>{{ message }}</div>
  </div>
</template>
 
<script setup lang="ts">
import {shallowRef, triggerRef  } from "vue"
let message = shallowRef({
	res:"hello world",
})
const change= () => {
    message.value.res = "change hello world"  //不会进行监听修改
	triggerRef(message)//会被监听
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

feng_初学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值