@cat5th/vue-rn 是 Vue 3 的自定义渲染器,让开发者可以用熟悉的 Vue API 和 .vue 单文件组件编写 React Native 应用,而无需使用 React 或 JSX。

Stars

4

7 天增长

暂无数据

Fork 数

0

开放 Issue

0

开源协议

暂无数据

最近更新

2026-07-31

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它将 Vue 3 的开发模式带到 React Native 的 Fabric 原生渲染层,提供 .vue SFC 支持、HMR、Vue Router 集成、CSS 工具类解析以及实验性的 Web 兼容层。

适合谁使用

  • 希望不学 React 就开发原生移动应用的 Vue 3 开发者
  • 希望在 Web 与 React Native 之间复用 Vue 技能的团队
  • 对自定义渲染器和 Vue 原生 UI 感兴趣的开发者
  • 正在评估基于 Vue 的替代开发层方案的 React Native 团队

典型使用场景

  • 使用 Vue 3 和 .vue 组件构建 iOS 与 Android 应用
  • 结合 Vue Router 和响应式状态开发原生移动应用
  • 使用 Tailwind CSS 或 UnoCSS 工具类来设置 React Native 组件样式
  • 通过 Web 兼容层实验性地在浏览器中运行同一套组件

项目优势

  • 使用 Vue 3 的 createApp、script setup、ref/reactive API,无需 React 组件或 JSX
  • 通过 @rasenjs/rn-dom 渲染到 React Native Fabric 原生节点
  • Metro 集成支持 .vue 单文件组件转换和保留组件状态的 HMR
  • 内置 Vue Router、CSS 工具类解析和 CSS Modules 支持

使用前须知

  • Web 兼容层属于实验性功能
  • 依赖 @rasenjs/rn-dom 和 React Native Fabric 环境
  • 使用 .vue 文件需要配置 Metro,并在 TypeScript 项目中添加类型声明

README 快速开始

@cat5th/vue-rn

用 Vue 3 写 React Native 应用。

@cat5th/vue-rn 是 Vue 3 的自定义渲染器,将 Vue 渲染到 React Native Fabric。 无需 React 组件、JSX 或学习新的 API——用熟悉的 createApp、``、ref 即可。


特性

  • Vue 3 自定义渲染器 — 用熟悉的 createApp、``、ref/reactive 编写 RN 应用
  • React Native Fabric 原生渲染 — 通过 @rasenjs/rn-dom 直接操作 RN 原生节点
  • Vue Router 集成 — 内置 RouterLink 组件和 RN 适用的内存路由历史 createRNHistory()
  • .vue SFC 转换 — 一行 Metro 配置(withVueRN 插件),直接使用 .vue 文件
  • HMR 热更新 — 修改 .vue 文件自动热替换,组件状态保持不丢失
  • CSS 工具类支持 — 内置 Tailwind CSS v3/v4、UnoCSS 的 class-to-style 解析器
  • CSS Modules — 支持 `` 转换为 RN style 对象
  • Web 兼容层 — 同一套组件可运行在浏览器(实验性)

⚡ 快速开始

完整步骤见 入门指南。以下是一个可运行的最小闭环。

1. 安装

npm install @cat5th/vue-rn @rasenjs/rn-dom vue vue-router

2. 配置 Metro

// metro.config.js
const { getDefaultConfig } = require('@react-native/metro-config')
const { withVueRN } = require('@cat5th/vue-rn/metro')

module.exports = withVueRN(getDefaultConfig(__dirname))

3. 添加类型声明

// env.d.ts
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent, Record, unknown>
  export default component
}

RN 组件类型自动注册,无需手动引用 tags.d.ts

4. 创建入口

// index.ts
import { createApp } from '@cat5th/vue-rn'
import App from './App.vue'
import { name as appName } from './app.json'

createApp(App).register(appName)

5. 第一个组件



  
    
      Hello from Vue 3 + RN!
    
  

6. 运行

npx react-native run-ios
# 或
npx react-native run-android

文档

文档说明
📖 入门指南环境要求、完整安装与项目配置步骤
� 组件内置组件、事件与类型说明
�🧭 路由集成vue-router 集成与 RouterLink 组件
🔧 Metro TransformerwithVueRN 插件、CSS 工具类与 HMR
📱 Native 渲染渲染器原理与 createApp / register
🌐 Web 兼容层同一套组件运行在浏览器(实验性)
📚 API 参考完整的 API 文档

项目描述

Vue 3 custom renderer for React Native Fabric

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

makecindy
精选
makecindy GitHub avatar

cindy

Cindy is an open-source AI agent that runs locally on your machine, integrates multiple AI harnesses and models, and provides memory, skills, and automation to perform real work in your projects and apps.

AI 与机器学习大语言模型
958
uzairansaruzi
精选
uzairansaruzi GitHub avatar

hermex

Hermex is a native SwiftUI iPhone app that lets you control a self-hosted Hermes AI agent directly from your phone, with no subscriptions, tracking, or third-party relay.

AI 与机器学习大语言模型
941
TanStack
精选
TanStack GitHub avatar

router

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.

Web 开发前端框架
14,861