vue-mod-page/README.md

48 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2024-12-19 13:51:07 +08:00
# Vue Mod Page
## 概述
这是一个工具库用于在Vue项目跨越IFrame来调用另一个Vue项目并且同时支持了Vue2.7和Vue3的跨版本调用。
## 功能
- 基于IFrame来调用另一个Vue项目以下称“子项目”
- 可以在子项目中渲染原生HTML元素或是已注册为全局组件的Vue组件
- 支持Vue2.7和Vue3的跨版本调用
- 支持属性传参(props)CSS类(classes),样式(style),事件(onXXX)的传递
- 支持子节点(children)渲染
- 支持具名插槽(slot)
- 支持作用域插槽(slot-scope)
- 支持Vue模板引用(ref)
## 使用
1. 在主项目和子项目中引入该工具库
2. 在子项目中引入`Receiver`组件,然后将该组件注册到路由上
3. 在子项目中将需要被主项目调用的Vue组件注册为全局组件
```vue
// Vue3
app.component('MyComponent', MyComponent)
// Vue2
Vue.component('MyComponent', MyComponent)
```
4. 在主项目中引入`Invoker`组件,并传入`url`和`items`属性
- `url`:子项目`Receiver`的URL
- `items`: 包含子项目渲染元素定义的列表,见`InvokerItem`的类型定义
5. 根据使用的Vue版本在两个项目的目录下执行以下命令
```sh
# Vue2.7
npm run vue-demi-switch 2.7 vue2
# Vue3
npm run vue-demi-switch 3
```
6. 运行项目查看效果
## 注意事项
1. 主项目和子项目需要同源或是配置好了CORS策略
2. 该库对Vue2.7的支持有限