# lytjs **Repository Path**: lytjs/lytjs ## Basic Information - **Project Name**: lytjs - **Description**: Lyt.js v6.0.0 -- 下一代轻量级前端框架 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: develop - **Homepage**: https://idcu.github.io/lytjs/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-16 - **Last Updated**: 2026-05-22 ## Categories & Tags **Categories**: javascript-toolkits **Tags**: None ## README # Lyt.js > 下一代轻量级前端框架 · 运行时零第三方依赖 · 双渲染模式 ## 特性 - **高性能响应式系统** - 基于 Proxy 的细粒度依赖追踪 - **精确的 VDOM diff 算法** - PatchFlags 和 Block Tree 编译时优化 - **双核心模式** - Vapor 模式与 VNode 模式可选 - **8层模块化架构** - 分层设计,按需引入 - **TypeScript 全类型支持** - 完整的类型推导 - **安全优先** - 内置 XSS 防护、CSP 支持、输入验证 - **跨平台渲染** - 统一的 Host Contract 接口 - **运行时零第三方依赖** - 完全自研实现,极致轻量 - **可插拔官方插件** - 主题、日志、国际化等官方插件 ## 快速开始 ```bash pnpm add @lytjs/core ``` ```typescript import { createApp, ref, computed } from '@lytjs/core'; const app = createApp({ setup() { const count = ref(0); const doubled = computed(() => count.value * 2); return { count, doubled }; }, template: '
{{ count }} x 2 = {{ doubled }}
', }); app.mount('#app'); ``` ## 双核心模式 Lyt.js 提供两种渲染模式,可根据场景选择: | 包名 | 描述 | | -------------------- | -------------------------------------------- | | `@lytjs/core` | 完整核心,支持 Vapor 和 VNode 双模式 | | `@lytjs/core-vnode` | 仅 VNode 渲染模式,适合传统模板场景 | | `@lytjs/core-signal` | 仅 Vapor/Signal 渲染模式,适合细粒度响应场景 | ## 官方插件 基于 8 层架构的可插拔插件体系,所有插件均为运行时零依赖: | 插件名 | 描述 | | -------------------------- | -------------------------------- | | `@lytjs/plugin-theme` | 主题切换、主题定制、CSS 变量管理 | | `@lytjs/plugin-logger` | 日志分级、性能追踪、持久化存储 | | `@lytjs/plugin-auth` | 权限路由、权限验证、角色管理 | | `@lytjs/plugin-storage` | 本地存储、状态持久化、过期时间 | | `@lytjs/plugin-i18n` | 国际化支持、语言切换、翻译管理 | | `@lytjs/plugin-vite` | Vite 集成、热更新、构建优化 | | `@lytjs/plugin-chart` | 图表渲染、ECharts 集成 | | `@lytjs/plugin-animation` | 动画库、FLIP 动画、过渡组件 | | `@lytjs/plugin-form` | 表单管理、状态绑定、验证集成 | | `@lytjs/plugin-data-fetch` | 数据获取基础、缓存支持 | | `@lytjs/plugin-data` | 增强版数据获取、乐观更新 | | `@lytjs/plugin-validation` | 表单验证、规则系统、自定义验证 | | `@lytjs/plugin-testing` | 测试工具集成、组件测试 | ## UI 组件库 Lyt.js 提供完整的零依赖 UI 组件库(60+ 组件),所有组件均支持 Vapor 和 VNode 双模式: | 类别 | 组件 | | -------- | ---------------------------------------------------------------------------------------------- | | 基础组件 | Button, Input, InputNumber, Icon, Badge, Tag, Spin, Empty, Link, Container, Divider | | 表单组件 | Form, Select, Checkbox, CheckboxGroup, Radio, RadioGroup, Switch, Slider, Cascader, TreeSelect | | 反馈组件 | Dialog, Modal, Drawer, Alert, Tooltip, Popconfirm, Message, Notification, Toast, Progress | | 布局组件 | Table, Menu, Tabs, Breadcrumb, Steps, Pagination, Descriptions | | 数据展示 | Tree, Calendar, DatePicker, TimePicker, Image, Avatar, Rate, ColorPicker | | 业务组件 | Upload, Transfer, RichTextEditor, Carousel | | 动画组件 | Transition, TransitionGroup | | 其他组件 | Timeline, TimelineItem | ## 8层架构 Lyt.js 采用精心设计的 8 层架构,从底层到上层: ``` ┌─────────────────────────────────────────────────────────────┐ │ L7: 工程化工具层 │ │ 构建工具、CLI、DevTools、测试工具 │ ├─────────────────────────────────────────────────────────────┤ │ L6: 生态系统层 │ │ UI 组件库、路由、状态管理、SSR、DevTools │ ├─────────────────────────────────────────────────────────────┤ │ L5: 组件基础层 │ │ 组件通用逻辑、通信机制、样式规范统一 │ ├─────────────────────────────────────────────────────────────┤ │ L4: 插件与适配层 │ │ 官方插件、跨平台适配器、Web 适配 │ ├─────────────────────────────────────────────────────────────┤ │ L3: 核心运行时层 │ │ 应用实例创建、生命周期、插件注册/卸载、依赖注入 │ ├─────────────────────────────────────────────────────────────┤ │ L2: 渲染引擎层 │ │ Vapor 渲染器、VDOM 渲染器、组件系统 │ ├─────────────────────────────────────────────────────────────┤ │ L1: 核心原语层 │ │ 响应式系统、虚拟 DOM、编译器 │ ├─────────────────────────────────────────────────────────────┤ │ L0: 基础工具层 │ │ 原生 JS 工具封装、常量定义、类型判断 │ └─────────────────────────────────────────────────────────────┘ ``` ### 架构约束 - **基础工具层开放**:L0 基础工具层(common-\*)可被所有上层直接依赖 - **分层合理依赖**:核心层(L1-L4)遵循分层原则,尽量减少跨层依赖,但允许必要的跨层访问 - **单向依赖**:只允许从上层依赖下层,禁止反向依赖 - **零第三方依赖**:L0-L6 层运行时无第三方依赖 - **可插拔设计**:插件层采用可插拔架构,按需引入 ## 包架构 基于 8 层架构的包组织: ### L0: 基础工具层(30+ 个工具包) | 包 | 描述 | | ---------------------- | ------------------ | | `@lytjs/shared-types` | 共享类型定义 | | `@lytjs/host-contract` | 跨平台渲染接口定义 | | `@lytjs/common-*` | 30+ 个工具子包 | **工具包列表**:common-is, common-constants, common-string, common-object, common-error, common-warn, common-events, common-scheduler, common-algorithm, common-dom, common-dom-helpers, common-performance, common-a11y, common-keyboard, common-storage, common-validate, common-http, common-raf, common-render-queue, common-event-normalizer, common-node-cache, common-async-scheduler, common-transition-engine, common-assertions, common-security, common-path, common-query, common-timing, common-cache, common-memory ### L1: 核心原语层 | 包 | 描述 | | ------------------- | ------------------------------------------------------------ | | `@lytjs/reactivity` | 响应式系统(signal, ref, reactive, computed, watch, effect) | | `@lytjs/vdom` | 虚拟 DOM 和 diff 算法 | | `@lytjs/compiler` | 模板编译器(SFC 编译、指令转换) | ### L2: 渲染引擎层 | 包 | 描述 | | -------------------- | ----------------------------------- | | `@lytjs/renderer` | DOM/SSR 渲染器(Vapor/VDOM 双模式) | | `@lytjs/component` | 组件系统 | | `@lytjs/dom-runtime` | DOM 运行时工具 | ### L3: 核心运行时层 | 包 | 描述 | | -------------------- | ------------------------------------ | | `@lytjs/core` | 核心应用 API(完整版) | | `@lytjs/core-vnode` | 核心应用 API(仅 VNode 模式) | | `@lytjs/core-signal` | 核心应用 API(仅 Vapor/Signal 模式) | ### L4: 插件与适配层 | 包 | 描述 | | -------------------------- | -------------- | | `@lytjs/plugin-theme` | 主题插件 | | `@lytjs/plugin-logger` | 日志插件 | | `@lytjs/plugin-auth` | 权限插件 | | `@lytjs/plugin-storage` | 存储插件 | | `@lytjs/plugin-i18n` | 国际化插件 | | `@lytjs/plugin-vite` | Vite 集成插件 | | `@lytjs/plugin-chart` | 图表插件 | | `@lytjs/plugin-animation` | 动画插件 | | `@lytjs/plugin-form` | 表单插件 | | `@lytjs/plugin-data-fetch` | 数据获取插件 | | `@lytjs/plugin-data` | 数据插件 | | `@lytjs/plugin-validation` | 验证插件 | | `@lytjs/plugin-testing` | 测试插件 | | `@lytjs/adapter-web` | Web 平台适配器 | | `@lytjs/dom` | DOM 平台封装 | | `@lytjs/web` | Web 平台工具 | ### L5: 组件基础层 (已包含在 L2 渲染引擎层和 L4 插件与适配层中) ### L6: 生态系统层 | 包 | 描述 | | ------------------------- | -------------------------- | | `@lytjs/ui` | UI 组件库(60+ 组件) | | `@lytjs/router` | 路由系统 | | `@lytjs/router-fs` | 文件系统路由引擎 | | `@lytjs/api` | API 路由引擎 | | `@lytjs/store` | 状态管理(灵感来自 Pinia) | | `@lytjs/devtools` | 开发者工具 | | `@lytjs/ssr` | 服务端渲染 | | `@lytjs/bundler` | 构建工具集成 | | `@lytjs/hmr` | 热模块替换 | | `@lytjs/runtime-edge` | 边缘运行时支持 | | `@lytjs/platform-adapter` | 平台适配器 | | `@lytjs/compat` | 兼容性层 | ### L7: 工程化工具层 | 包 | 描述 | | ------------------- | ---------- | | `@lytjs/cli` | CLI 工具 | | `@lytjs/test-utils` | 测试工具包 | ## 安全特性 Lyt.js 内置多层安全防护: - **XSS 防护** - v-html 自动转义,SSR 模式安全输出 - **CSP 支持** - 严格模式检测与优雅降级 - **输入验证** - 动态属性名、事件名、组件名验证 - **递归限制** - 组件递归深度限制(最大 100 层) - **错误边界** - 完善的错误捕获与恢复机制 ## 开发 ### 环境要求 - Node.js >= 18.0.0 - pnpm >= 9.0.0 ### 安装依赖 ```bash pnpm install ``` ### 开发命令 ```bash # 构建所有包 pnpm build # 构建核心包 pnpm build:core # 构建生态系统包 pnpm build:ecosystem # 构建插件 pnpm build:plugins # 构建工具包 pnpm build:tools # 运行所有测试 pnpm test # 类型检查 pnpm type-check # 代码质量检查 pnpm lint:check # 零依赖规范校验 pnpm run check-zero-deps # 循环依赖检查 pnpm run check-circular # 包体积检查 pnpm run size-check # 基准测试 pnpm bench ``` ### 项目结构 ``` lytjs/ ├── packages/ │ ├── _templates/ # 新包模板 │ ├── common/ # L0 基础工具层 │ │ └── packages/ # 30+ 个工具子包 │ ├── shared-types/ # L0 基础工具层 - 共享类型定义 │ ├── host-contract/ # L0 基础工具层 - 跨平台渲染接口 │ ├── reactivity/ # L1 核心原语层 - 响应式系统 │ ├── vdom/ # L1 核心原语层 - 虚拟 DOM │ ├── compiler/ # L1 核心原语层 - 模板编译器 │ ├── renderer/ # L2 渲染引擎层 - 渲染器 │ ├── component/ # L2 渲染引擎层 - 组件系统 │ ├── dom-runtime/ # L2 渲染引擎层 - DOM 运行时工具 │ ├── core/ # L3 核心运行时层 - 完整版 │ ├── core-signal/ # L3 核心运行时层 - 仅 Vapor 模式 │ ├── core-vnode/ # L3 核心运行时层 - 仅 VNode 模式 │ ├── plugins/ # L4 插件与适配层 │ │ └── packages/ │ │ ├── plugin-theme/ │ │ ├── plugin-logger/ │ │ ├── plugin-auth/ │ │ ├── plugin-storage/ │ │ ├── plugin-i18n/ │ │ ├── plugin-vite/ │ │ ├── plugin-chart/ │ │ ├── plugin-animation/ │ │ ├── plugin-form/ │ │ ├── plugin-data-fetch/ │ │ ├── plugin-data/ │ │ ├── plugin-validation/ │ │ └── plugin-testing/ │ ├── adapter-web/ # L4 插件与适配层 - Web 适配器 │ ├── dom/ # L4 插件与适配层 - DOM 平台封装 │ ├── web/ # L4 插件与适配层 - Web 平台工具 │ ├── ecosystem/ # L6 生态系统层 │ │ └── packages/ │ │ ├── ui/ # UI 组件库(60+ 组件) │ │ ├── router/ # 路由 │ │ ├── router-fs/ # 文件系统路由 │ │ ├── api/ # API 路由引擎 │ │ ├── store/ # 状态管理 │ │ ├── devtools/ # 开发者工具 │ │ ├── ssr/ # 服务端渲染 │ │ ├── bundler/ # 构建工具 │ │ ├── hmr/ # 热模块替换 │ │ ├── runtime-edge/ # 边缘运行时 │ │ ├── platform-adapter/ # 平台适配器 │ │ └── compat/ # 兼容性层 │ └── tools/ # L7 工程化工具层 │ └── packages/ │ ├── cli/ # CLI 工具 │ ├── devtools/ # DevTools 扩展 │ └── test-utils/ # 测试工具 ├── playground/ # 开发调试 ├── benchmarks/ # 基准测试 ├── docs/ # 文档 ├── examples/ # 示例项目 └── scripts/ # 工程化脚本 ``` ### 开发文档 - [AGENTS.md](./AGENTS.md) - AI 开发助手规则与最佳实践 - [AI IDE 开发规则](./docs/development/AI_IDE_RULES.md) - AI IDE 开发规则 - [中文文档指南](./docs/development/CHINESE_DOCS_GUIDE.md) - 中文文档指南 - [开发路线图](./docs/development/ROADMAP_NEXT_STEPS.md) - 开发路线图 - [项目结构说明](./docs/development/PROJECT_STRUCTURE.md) - 项目结构说明 - [插件开发指南](./docs/development/PLUGIN_DEVELOPMENT.md) - 插件开发指南 - [架构设计文档](./docs/development/ARCHITECTURE.md) - 架构设计文档 ## 版本历史 ### v6.6.0(最新版本) - 📦 **核心工具包增强** - @lytjs/common-query - 增强版查询参数处理,支持数组 - @lytjs/common-http - 增强版 HTTP 客户端,新增便捷方法 - 🛠️ **包复用优化** - @lytjs/http-server - 重构,移除重复代码,复用 common-query - 📝 **文档完善** - common-http 和 api 包的完整 README - 所有包版本统一升级至 v6.6.0 - ✅ **向后兼容** - 保持完全向后兼容 ### v6.5.0 - 📦 **新增核心增强包** - @lytjs/plugin-data - 增强版数据获取插件 - @lytjs/plugin-validation - 验证插件 - @lytjs/router-fs - 文件系统路由引擎 - @lytjs/api - API 路由引擎 - 🛠️ **新增构建与静态包** - @lytjs/bundler - 构建工具集成 - @lytjs/hmr - 热模块替换 - 完整的 SSG/ISR 支持(已包含在 @lytjs/ssr 中) - 🌍 **生态系统完善** - @lytjs/runtime-edge - 边缘运行时支持 - 所有现有插件版本升级至 v6.5.0 - ⚡ **性能优化** - Tree-shaking 优化 - 统一 tsup 构建配置 - 📝 **文档完善** - 完整的发布说明 - 所有新包的 README ### v6.4.0 - 全新 8 层模块化架构 - 双渲染模式(Vapor + VDOM) - 60+ UI 组件 - 29+ 基础工具包 - 7 个官方插件 - 完整的 TypeScript 类型支持 - 内置安全防护 ## 许可证 MIT