# x.web
**Repository Path**: wmlgl/x.web
## Basic Information
- **Project Name**: x.web
- **Description**: 插件实现一个工具集web页面
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-01-22
- **Last Updated**: 2022-01-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 懒人项目、不定期更新
# 项目说明
本程序意在以插件模式创建一个可以集合各种工具的Web前端程序,本程序不对接后端,以浏览器本地存储为基础开发应用
- x.web: 基础项目整合所有插件并展示运行
- x.host: 插件基础库
- x.common: 封装 vue 及 UI 插件
- x.home: 用 vue 实现的插件,作为主页
- x.help: 用 vue 实现的插件,帮助文档
# 开发说明
- 启动主项目 x.web: npm run dev
- 启动要开发的插件项目, 如 x.home: ```cd plugins/x.home/ && npm run build```
- 浏览器打开 localhost:3000
# 新增插件说明
1.复制 x-help 项目到同一目录并重名
2.修改新项目的 package.json 的 name 与目录同名
3.修改新项目的 src/x.help.ts 与目录同名
4.编译新项目
5.在 public/plugins.json 中仿照 x.help 添加新的插件加载路径
# 插件生命周期
1. new: 定义完插件后需要先实例化自己,如 x.help.ts 中的 new XHelp()
2. plugin-add: 插件的父类 XPlugin 会将自己注册到全局变量 x.registry ( XPluginRegistry ) 中, x.registry 会触发自身的 plugin-add 事件
3. onInstall: XPluginHost 在监听到 x.registry 的 plugin-add 后, 会调用插件的 setHost 将自己设置给插件,并调用插件的 onInstall
4. plugin-add: XPluginHost 在添加插件后会触发自身的 plugin-add 事件
5. host-init: XPluginHost 获得dom元素后会触发 host-init 事件
6. onHostInit: 插件在收到 host-init 事件后会调用自身的 onHostInit
7. plugin-remove: XPluginHost 在移除插件后会触发自身的 plugin-remove 事件
8. onUninstall: XPluginHost 移除插件后会调用插件的 onUninstall
# Vue 3 + Typescript + Vite
This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 `