Vue 转 React:toRaw(),VuReact 怎么处理?

VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心:Vue 中使用的 toRaw() 经过 VuReact 编译后会变成什么样的 React 代码?

前置约定

为避免示例代码冗余导致理解偏差,先明确两个小约定:

  1. 文中 Vue / React 代码均为核心逻辑简写,省略完整组件包裹、无关配置等内容;
  2. 默认读者已熟悉 Vue 3 中 toRaw 的 API 用法与核心行为。

编译对照

Vue toRaw() → React useToRaw()

toRaw 是 Vue 3 中用于获取响应式对象原始非响应式引用的 API,通常用于调试、序列化或与非响应式库交互时。VuReact 会将它编译为 useToRaw,让 React 端也能安全地读取原始数据对象。

  • Vue 代码:
html 复制代码
<script setup>
  import { reactive, toRaw } from 'vue';

  const state = reactive({
    settings: {
      theme: 'dark',
      notifications: true,
    },
  });

  const rawData = toRaw(state);
</script>
  • VuReact 编译后 React 代码:
ts 复制代码
import { useReactive, useToRaw } from '@vureact/runtime-core';

const state = useReactive({
  settings: {
    theme: 'dark',
    notifications: true,
  },
});

const rawData = useToRaw(state);

VuReact 提供的 useToRawtoRaw 的适配 API ,可理解为「React 版的 Vue toRaw」,完全模拟 Vue toRaw 的语义------它返回的是原始对象引用,且该对象不再具有响应性,修改它不会触发视图更新。


🔗 相关资源


📖 继续阅读


✨ 如果你觉得本文对你理解 VuReact 有帮助,欢迎点赞、收藏、关注!

相关推荐
不好听61323 分钟前
React 记忆化三兄弟:memo、useMemo、useCallback 到底在缓存什么
react.js
樊小肆31 分钟前
# 你还在等DeepSeek官方 agent Harness‌? 来试试 DeepSeeker-Code吧
前端·人工智能·后端
樊小肆32 分钟前
2568 万 token 才花 2 块 2:聊聊 DeepSeeker-Code 怎么吃满上下文缓存
前端·人工智能·后端
众人皆醒我独醉32 分钟前
大模型训练优化:FSDP、DeepSpeed ZeRO 与混合精度
后端·面试·gpu
JarvanMo42 分钟前
Flutter 3.47: material/cupertino终于解耦了
前端
郭邯1 小时前
一次「字符洁癖」引发的思考:我用 AI 写了个全角半角转换工具
前端
想要成为糕糕手1 小时前
🚀 在浏览器里跑 DeepSeek-R1?WebGPU 端侧推理实战(五)—— 中断、重置、缓存与流式生成
前端·react.js·llm
GuWenyue1 小时前
后端接口又双叒没写好?3 步搭建前端 Mock,从此告别"傻等后端"
前端·mocha
海兰1 小时前
【数据采集】开源的 Web 数据采集与处理Firecrawl(一)
前端·开源
vivo互联网技术1 小时前
从一键检测到 AI 修复:我们如何把无障碍检查做进研发流程
前端·人工智能