点点开黑交友陪玩
262.4MB · 2026-04-23
VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心:Vue SFC 中的基本 <style> 样式块经过 VuReact 编译后会变成什么样的 React 代码?
为避免示例代码冗余导致理解偏差,先明确两个小约定:
VuReact 编译器会提取 Vue SFC 中的第一个 <style> 块,生成独立的 CSS 文件并自动注入导入语句。
<!-- Comp.vue -->
<template>
<div class="container"></div>
</template>
<style>
.container {
padding: 20px;
color: #333;
}
</>
// Comp.jsx
import './comp.css';
function Comp() {
return <div className="container"></div>;
}
/* comp.css */
.container {
padding: 20px;
color: #333;
}
从示例可以看到:Vue 的 <style> 块被编译为独立的 CSS 文件,并在 React 组件中自动注入导入语句。VuReact 提供的样式提取与文件生成功能,可理解为「React 版的 Vue 样式处理」,完全模拟 Vue SFC 的样式组织方式,例如自动生成对应的 CSS 文件并保持样式隔离。
生成的 CSS 文件遵循以下命名规则:
{组件名}.css{组件名}-{hash}.css{组件名}.module.css{组件名}-{hash}.module.css<style lang="scss"> 预处理成 css 文件典型输出结构:
.vureact/react-app/src/components/Counter
├─ index.tsx # React 组件
├─ index.css # 普通样式文件(如果存在)
├─ index-abc1234.css # Scoped 样式文件(如果存在)
└─ index-abc1234.module.css # CSS Modules 文件(如果存在)
VuReact 的样式编译策略展示了完整的样式转换能力:
<style> 块提取为独立 CSS 文件注意事项:
<style> 块生效,其余告警v-bind 绑定不支持VuReact 的编译策略确保了从 Vue 到 React 的平滑迁移,开发者无需手动处理样式文件。编译后的代码既保持了 Vue 的样式组织方式,又符合 React 的组件设计模式,让迁移后的应用保持完整的样式表现能力。
如果你觉得本文对你理解 VuReact 有帮助,欢迎点赞、收藏、关注!