-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
开发调试 #75
Comments
可能是我没描述清楚,入口加载远程插件后,基座路由组件里怎么使用远程插件视图 |
这个不属于ministar的范畴,需要自己实现。 具体实现方法很灵活,就和实现一个功能有多重方法一样没办法一一举例 以 Tailchat 的实现为例,插件把视图注册到基座项目暴露的对象中,然后基座在恰当的时候去加载这个对象里面的内容。 题外话,mini-star所代表的技术方案微内核架构是常规微前端的超集,即微内核架构可以实现微前端架构的功能,但是需要自己用代码补全部分逻辑。如果你想要的仅仅是通过路由去加载, 即一个页面只会有一个子应用,那么建议可以直接用微前端架构,减少重复的工作。 |
我对这个库倒是很感兴趣,只是如果插件都是远程的,执行完initMiniStar({ I am very interested in this library, but if the plug-ins are all remote, after executing initMiniStar({ |
为了架构考虑。这是一种单向依赖。在面向对象编程中我们常把这个操作称之为控制反转(ioc) 作为基座项目对于插件是无感知的,而插件是知道基座项目的存在的。如果你能理解ioc就很容易理解基座项目与插件的生存位了。 举个例子: 基座项目: export const pluginMessage = []
regSharedModule('@capital/pluginMessage', () => Promise.resolve({ pluginMessage }))
initMiniStar(...).then(()=> {
console.log("Print all message", pluginMessage )
}) 插件1: import { pluginMessage } from '@capital/pluginMessage';
pluginMessage.push('Plugin 1') 插件2: import { pluginMessage } from '@capital/pluginMessage';
pluginMessage.push('Plugin 2') 通过 然后基座再根据约定的协议在对插件无感知的基础上去使用插件注入的内容。 当然这种方式只是一种,ministar就是帮助开发者在两个不相干的项目中实现状态共享,以此来做到整体架构的独立干净 |
谢谢🙏耐心解答 Thank you for answering patiently |
插件加载完在基座应用的其他组件中怎么使用插件视图,其次怎么在开发中和基座应用联动(热更新)
The text was updated successfully, but these errors were encountered: