# converge-ui
**Repository Path**: chzhp/converge-ui
## Basic Information
- **Project Name**: converge-ui
- **Description**: 一个能够无缝结合React和Vue3的前端框架,提供统一的组件系统、状态管理和开发体验。
- **Primary Language**: Unknown
- **License**: MPL-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-25
- **Last Updated**: 2025-08-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Converge UI - 统一前端框架
一个能够无缝结合React和Vue3的前端框架,提供统一的组件系统、状态管理和开发体验。
## 🚀 特性
- **统一组件系统**: 支持React和Vue3组件无缝集成
- **统一状态管理**: 提供响应式状态管理,支持跨框架状态共享
- **统一路由系统**: 支持React和Vue3的路由统一管理
- **统一Hooks系统**: 提供跨框架的Hooks和Composables
- **类型安全**: 完整的TypeScript支持
- **插件系统**: 可扩展的插件架构
- **开发工具**: 内置开发调试工具
## 📦 安装
```bash
npm install converge-ui
```
## 🎯 快速开始
### 基础使用
```typescript
import { createApp, ComponentType } from 'converge-ui'
// 创建应用
const app = createApp({
type: ComponentType.REACT, // 或 ComponentType.VUE
root: '#app',
routes: [
{
path: '/',
component: {
id: 'home',
type: ComponentType.REACT,
props: {}
}
}
]
})
// 挂载应用
app.mount()
```
### React组件示例
```tsx
import React from 'react'
import { withConvergeUI, useConvergeState } from 'converge-ui/react'
const Counter: React.FC = () => {
const [count, setCount] = useConvergeState(0)
return (
Count: {count}
)
}
// 使用高阶组件包装
export default withConvergeUI(Counter, 'Counter')
```
### Vue组件示例
```vue
Count: {{ count }}
```
### 状态管理
```typescript
import { createStore, reactive } from 'converge-ui'
// 创建状态管理
const store = createStore({
user: {
name: 'John Doe',
email: 'john@example.com'
},
theme: 'light'
})
// 创建响应式数据
const counter = reactive(0)
// 订阅状态变化
store.subscribe((state) => {
console.log('State updated:', state)
})
counter.subscribe((value) => {
console.log('Counter updated:', value)
})
```
### 混合使用
```typescript
import { createApp, ComponentType, createStore } from 'converge-ui'
import { withConvergeUI } from 'converge-ui/react'
import { useConvergeRef } from 'converge-ui/vue'
// 共享状态
const sharedStore = createStore({
user: { name: 'John' },
theme: 'light'
})
// React组件
const ReactComponent = withConvergeUI(({ user }) => {
return Hello {user.name}
}, 'ReactComponent')
// Vue组件
const VueComponent = {
setup() {
const theme = useConvergeRef(sharedStore.getState().theme)
return { theme }
},
template: 'Theme: {{ theme }}
'
}
// 创建应用
const app = createApp({
type: ComponentType.REACT,
root: '#app',
stores: { shared: sharedStore }
})
```
## 🏗️ 架构
### 核心模块
- **Core**: 核心类型定义和基础功能
- **Store**: 统一状态管理系统
- **Component**: 统一组件系统
- **Router**: 统一路由系统
- **Hooks**: 统一Hooks系统
- **React**: React适配器
- **Vue**: Vue适配器
- **Utils**: 工具函数和适配器
### 设计模式
- **适配器模式**: 为不同框架提供统一接口
- **单例模式**: 管理器类使用单例模式
- **观察者模式**: 状态管理和事件系统
- **工厂模式**: 组件和适配器创建
## 📚 API文档
### 核心API
#### createApp(config)
创建应用实例
```typescript
interface IAppConfig {
type: ComponentType
root: string | HTMLElement
routes?: IRoute[]
stores?: Record
plugins?: IPlugin[]
}
```
#### createStore(initialState)
创建状态管理实例
```typescript
const store = createStore({
user: { name: 'John' },
theme: 'light'
})
store.setState({ theme: 'dark' })
store.subscribe((state) => console.log(state))
```
#### reactive(value)
创建响应式数据
```typescript
const counter = reactive(0)
counter.value = 1
counter.subscribe((value) => console.log(value))
```
### React API
#### withConvergeUI(Component, name)
高阶组件包装器
#### useConvergeState(initialState)
统一状态Hook
#### useConvergeEffect(effect, deps)
统一副作用Hook
### Vue API
#### useConvergeRef(initialValue)
统一ref Composable
#### useConvergeComputed(getter)
统一computed Composable
#### useConvergeWatch(source, callback)
统一watch Composable
## 🔧 开发
### 安装依赖
```bash
npm install
```
### 开发模式
```bash
npm run dev
```
### 构建
```bash
npm run build
```
### 测试
```bash
npm run test
```
## 🤝 贡献
欢迎提交Issue和Pull Request!
## 📄 许可证
MIT License