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

04 vue3之to系列全家桶

toRef toRefs toRaw

toRef

如果原始对象是非响应式的就不会更新视图 数据是会变的

如果原始对象是响应式的是会更新视图并且改变数据的

针对响应式的有效 修改某个对象的key值 非响应式视图不会改变,源码没做依赖收集和更应依赖,做了会导致BUG 会触发两次

<template><div class="">{{ j }}</div><button class="" @click="toRef1">toRef</button>
</template><script setup lang="ts">
import { ref, reactive, toRef, toRefs, toRaw } from "vue";
let j = reactive({ name: "cookie", age: 18 });let age1 = toRef(j, "age");
let toRef1 = () => {age1.value = 33;
};
</script>

toRefs

可以帮我们批量创建ref对象主要是方便我们解构使用

import { reactive, toRefs } from 'vue'
const obj = reactive({foo: 1,bar: 1
})let { foo, bar } = toRefs(obj)foo.value++
console.log(foo, bar);
 手动实现个toRefs
const toRefs = <T extends object>(object: T) => {const map: any = {};for (let key in object) {map[key] = toRef(object, key);}return map;
};

toRaw

将响应式对象转化为普通对象,不想让视图发生变化可以使用这个

import { reactive, toRaw } from 'vue'const obj = reactive({foo: 1,bar: 1
})const state = toRaw(obj)
// 响应式对象转化为普通对象const change = () => {console.log(obj, state);}


http://www.mrgr.cn/news/12151.html

相关文章:

  • 大模型企业应用落地系列三》基于大模型的对话式推荐系统》技术架构实现》大数据平台层
  • Leetcode JAVA刷刷站(99)恢复二叉搜索树
  • P6626 [省选联考 2020 B 卷] 消息传递
  • mac Let‘s Encrypt 免费SSL证书申请
  • Java集成百度地图API入门指南
  • 苹果秋季发布会前瞻:iPhone 16领衔新品盛宴
  • 什么是数据库 DevOps?
  • 分布式设计原理——CAP原则
  • 数据导出为Excel接口报错:java.io.IOException: UT010029: Stream is closed
  • 【第54课】XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架
  • Java中金蝶凭证xml转wswsvoucher对象
  • 【区块链 + 智慧文旅】虎年春节数字藏品 | FISCO BCOS应用案例
  • nlp时序模型股价预测的基本思路(持续更新)
  • Python网络爬虫模拟登录与验证解析
  • 【3.3】贪心算法-解分发糖果
  • Apache Doris 使用 CBO 和 RBO 结合的优化策略
  • 此站点的连接不安全,解决方法
  • Sentinel-1 Level 1数据处理的详细算法定义(七)
  • 基于Vue3和Node.js的完整增删改查项目实现教程:从后端封装到前端调用
  • WHAT - 通过 react-use 源码学习 React