当前位置: 首页 > article >正文

toRef,toRefs,toRaw

假设有一个响应式对象 state,我们只想独立地访问和修改其中的某个属性,比如 count:

toRef

import { reactive, toRef } from 'vue';

// 创建一个响应式对象
const state = reactive({
  count: 0,
  message: "Hello Vue 3"
});

// 使用 toRef 创建 count 的引用
const countRef = toRef(state, 'count');

// 现在 countRef 是一个响应式的引用,修改它会更新 state.count
countRef.value++; // state.count 将变成 1

console.log(state.count); // 输出:1

toRefs

import { reactive, toRefs } from 'vue';

const state = reactive({
  count: 0,
  message: "Hello Vue 3"
});

// 使用 toRefs 将对象的属性全部转换为 ref
const { count, message } = toRefs(state);

count.value++; // state.count 也将更新

toRaw

import { reactive, toRaw } from 'vue';

// 创建一个响应式对象
const state = reactive({
  count: 0,
  message: "Hello Vue 3"
});

// 获取响应式对象的原始版本
const rawState = toRaw(state);

console.log(rawState); // 输出非响应式对象:{ count: 0, message: "Hello Vue 3" }

// 修改 rawState 的属性,不会触发响应性更新
rawState.count++;
console.log(state.count); // 输出 0,因为修改了非响应式对象,不会影响响应式状态


http://www.kler.cn/a/389379.html

相关文章:

  • Elastic Observability 8.16:增强的 OpenTelemetry 支持、高级日志分析和简化的入门流程
  • win32 / WTL 开发多线程应用,子线程传递大对象给UI线程(主窗口)的方法
  • 《EasyQuotation 与MongoDB在股市信息的奇妙融合》
  • 2024开发者浏览器必备扩展,不允许还有人不知道~
  • Systemd: disable和mask的区别
  • 少儿学习Scratch编程的好处和坏处
  • Centos7 安装RabbitMQ以及web管理插件
  • playwright使用
  • 大模型预训练+微调大模型;大模型提示/指令模式”(Prompt/Instruct Mode)
  • AUTOSAR CP TCP/IP堆栈规范导读
  • 一文熟悉新版llama.cpp使用并本地部署LLAMA
  • 秃姐学AI系列之:GRU——门控循环单元 | LSTM——长短期记忆网络
  • 盲盒小程序开发,盲盒经济正向线上转战发展
  • 地下水数值模拟、 地下水环评、Visual modflow Flex、Modflow
  • 思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
  • nodejs 019: React组件 JSX基础语法规则
  • 【FFmpeg】FFmpeg 函数简介 ③ ( 编解码相关函数 | FFmpeg 源码地址 | FFmpeg 解码器相关 结构体 和 函数 )
  • 管家婆ERP集成金蝶云星空(金蝶云星空主供应链)
  • 苍穹外卖05-Redis相关知识点
  • 简单实用RTC时钟 | 使用手册
  • Ubuntu22.04安装cuDNN
  • 计算机课程管理平台:Spring Boot与工程认证的结合
  • 【Uniapp】Uniapp Android原生插件开发指北
  • [mysql]DDL,DML综合案例,
  • 自动驾驶安全方向论文阅读
  • 【前端基础】Javascript取整函数以及向零取整方式