更新速览VuReact 于 7 月 1 日正式发布v1.10.0版本。本次更新新增了 Vue 3withDefaults宏的编译支持同时修复了使用unplugin-auto-import等免 import 插件时的 API 识别问题并对编译流程提示进行了优化。新增 withDefaults 编译支持withDefaults是 Vue 3script setup中用于为defineProps声明的 prop 提供编译时默认值的工具函数。VuReact 将其编译为useMemo 空值合并运算符??的组合在组件初始化时合并传入的 props 与默认值生成一个包含完整默认值的只读 props 对象。Vue 源码使用 withDefaultsscriptsetuplangtsinterfaceProps{msg?:string;count?:number;labels:string[];}constpropswithDefaults(definePropsProps(),{msg:hello,count:42,labels:()[one,two],});/scripttemplatediv{{ props.msg }} {{ props.count }}/divulliv-forvalue in props.labels:keyvalue{{ value }}/li/ul/templateVuReact 编译后的 React 产物import{useMemo,memo}fromreact;interfaceProps{msg?:string;count?:number;labels:string[];}exporttypeICompPropsProps;constInputmemo((vrProps:ICompProps){constpropsuseMemoReadonlyProps(()({...vrProps,msg:vrProps.msg??hello,count:vrProps.count??42,labels:vrProps.labels??[one,two],}),[vrProps]);return(div{props.msg}{props.count}/divul{props.labels.map(valueli key{value}{value}/li)}/ul/);});exportdefaultInput;编译逻辑解析处理方式说明基本类型默认值直接作为??右侧的字面量值仅在父组件未传递该 prop即undefined时生效引用类型默认值遵循 Vue 的工厂函数约定保证每次渲染生成独立的引用实例避免引用共享导致的副作用污染类型保留Props接口原样保留不会因默认值而改变类型的可选/必填约束只读保证useMemoReadonlyProps确保返回的 props 对象是只读的与 Vue 行为一致本次更新其他内容类型说明Bug 修复修复使用unplugin-auto-import等免 import 插件时Vue API如ref、computed、onMounted等因内部 adapter 缺少 binding 无法识别导致跳过转换的问题 Issue #62编译流程优化将编译阶段提示从单一的Compiling Vue to React...细分为Compiling components/scripts/styles...便于开发者更清晰了解当前编译进度测试覆盖新增withDefaults转换的单元测试覆盖关于 VuReactVuReact 是专为 Vue 迁移 React 设计的智能编译器。它用于将 Vue 3 单文件组件・脚本・样式完整转为纯 React非运行时桥接代码并输出工程化产物覆盖script setup核心全特性支持渐进式迁移与 VueReact 混合开发。。目前已完成适配的 Vue 特性核心宏defineProps、defineEmits、defineExpose、defineModel、withDefaults等响应式 APIref、computed、watch、watchEffect等生命周期onMounted、onUnmounted等样式scoped style、CSS Modules 等模板语法v-if、v-for、v-model、插槽等相关链接GitHubhttps://github.com/vureact-js/core欢迎 Star⭐开源不易官方文档https://vureact.top语义编译对照https://vureact.top/guide/semantic-comparison/script/with-defaults.html写在最后本次withDefaults编译支持的落地配合之前版本已支持的defineModel标志着 VuReact 对 Vue 3script setup核心编译器宏的覆盖度已接近完成。如果你正在经历或即将经历 Vue → React 的迁移欢迎在评论区分享你的场景和经验。扩展阅读VuReactVue 3 转 React 编译工具让跨框架迁移更专业Vue React 混写迁移实战一个真实后台项目的全流程记录运行时套壳永远无法帮你完成真正的 Vue 转 React