你的 Vue 3 computed(),VuReact 会编译成什么样的 React?

张开发
2026/4/14 11:46:29 15 分钟阅读

分享文章

你的 Vue 3 computed(),VuReact 会编译成什么样的 React?
VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心Vue 中高频使用的computed()经过 VuReact 编译后会变成什么样的 React 代码前置约定为避免示例代码冗余导致理解偏差先明确两个小约定文中 Vue / React 代码均为核心逻辑简写省略完整组件包裹、无关配置等内容默认读者已熟悉 Vue 3 中computedAPI 用法与核心行为。编译对照Vue computed() → React useComputed()computed是 Vue 3 中用于声明计算属性的核心 API依赖追踪让结果仅在相关响应式源发生变化时重新计算。VuReact 会将它编译为useComputed让 React 端也能获得同样的缓存与自动追踪能力。Vue 代码scriptsetupimport{reactive,computed}fromvue;conststatereactive({count:1,price:99,});consttotalPricecomputed(()state.count*state.price);/scriptVuReact 编译后 React 代码import{useReactive,useComputed}fromvureact/runtime-core;conststateuseReactive({count:1,price:99,});consttotalPriceuseComputed(()state.count*state.price);从示例可以看到Vue 的computed()被直接翻译为 React Hook——useComputed。VuReact 提供的 useComputed 是computed 的适配 API可理解为「React 版的 Vue computed」完全模拟 Vue computed 的依赖追踪与缓存行为例如只有当state.count或state.price改变时才重新计算避免不必要的重复执行。带 TypeScript 类型的场景computed在 TS 场景下同样保留类型信息React 端的类型推断依然正常Vue 代码scriptlangtssetupimport{reactive,computed}fromvue;conststatereactive({count:1,price:99,});consttotalPricecomputednumber(()state.count*state.price);/scriptVuReact 编译后 React TS 代码import{useReactive,useComputed}fromvureact/runtime-core;conststateuseReactive({count:1,price:99,});consttotalPriceuseComputednumber(()state.count*state.price);无需手动适配 TS 类型VuReact 会保留computed类型注解让 React 端的类型安全性与 Vue 端保持一致。可写 computed 与双向更新Vue 支持可写计算属性VuReact 的useComputed同样支持get/set形式让双向关联变得自然而直观Vue 代码scriptsetupimport{reactive,computed}fromvue;conststatereactive({firstName:张,lastName:三,});constfullNamecomputed({get:()${state.firstName}${state.lastName},set:(val:string){const[first,last]val.split( );state.firstNamefirst||;state.lastNamelast||;},});/scriptVuReact 编译后 React 代码import{useReactive,useComputed}fromvureact/runtime-core;conststateuseReactive({firstName:张,lastName:三,});constfullNameuseComputed({get:()${state.firstName}${state.lastName},set:(val:string){const[first,last]val.split( );state.firstNamefirst||;state.lastNamelast||;},});VuReact 的useComputed也能完整适配 Vue 的可写计算属性语义支持在 React 中通过fullName.value读取和写入从而反向同步底层响应式状态。 相关资源VuReact 官方文档https://vureact.topVuReact Runtime 文档https://runtime.vureact.top 继续阅读上一篇reactive下一篇readonly✨ 如果你觉得本文对你理解 VuReact 有帮助欢迎点赞、收藏、关注

更多文章