荣耀文档
80.56M · 2026-04-14
VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心:Vue 中高频使用的 reactive() 和 shallowReactive(),经过 VuReact 编译后会变成什么样的 React 代码?
reactive / shallowReactive 用法reactive 是 Vue 3 最核心的对象响应式 API,在 VuReact 中会被精准映射。
Vue 输入
<script setup>
import { reactive } from 'vue';
const state = reactive({
count: 0,
title: 'VuReact',
});
</script>
VuReact 输出(React)
import { useReactive } from '@vureact/runtime-core';
const state = useReactive({
count: 0,
title: 'VuReact',
});
reactive 直接编译为 useReactive Hook:
Vue 输入(TS)
<script lang="ts" setup>
import { reactive } from 'vue';
interface User {
id: number;
name: string;
}
const state = reactive<{
loading: boolean;
users: User[];
config: Record<string, any>;
}>({
loading: false,
users: [],
config: { theme: 'dark' },
});
</script>
VuReact 输出(TS)
import { useReactive } from '@vureact/runtime-core';
interface User {
id: number;
name: string;
}
const state = useReactive<{
loading: boolean;
users: User[];
config: Record<string, any>;
}>({
loading: false,
users: [],
config: { theme: 'dark' },
});
接口、泛型、类型约束完全迁移
React 侧智能提示、类型检查全部正常
不用改一行类型逻辑
浅层响应式用于性能优化,只顶层属性变化,VuReact 同样完美对齐。
Vue 输入
<script setup>
import { shallowReactive } from 'vue';
const state = shallowReactive({
nested: { count: 0 },
});
</script>
VuReact 输出(React)
import { useShallowReactive } from '@vureact/runtime-core';
const state = useShallowReactive({
nested: { count: 0 },
});
useShallowReactive 行为完全对齐 Vue:
reactive → React useReactiveshallowReactive → React useShallowReactive用 VuReact,你可以: