midwayjs 动态加载组件的一种方法

midwayjs 的组件特性是一个很不错的特性,可以让我们开发的应用模块化比较强,一般我们都是明确指定加载的组件的

实际上通过简单的动态加载也是一个很不错的玩法,可以实现动态化,以下简单说明下玩法

核心点

就是通过require 动态导入,让后作为参数传递就行了

参考玩法

就是一个简单示例,实际可以通过npm 或者配置文件解决

  • 加载模块的处理
// 通过require 加载模块
function loadComponent() {
  // custom component load logic
  let bookComponent =  require("midway-custom-component")
  let bookComponentv2 =  require("midway-custom-componentv2") 
  return [bookComponent,bookComponentv2];
}
  • 导入模块 configuration.ts
@Configuration({
  imports: [
    koa,
    ...loadComponent(),

说明

以上是一个简单的玩法,实际上loadComponent 可以通过配置文件,或者其他参数动态传递,这样灵活性就更方便了,以上使用了ts 不太推荐的require玩法,实际上import 也是可以的,但是import 实时异步的,对于当前环境来说并不太友好,import-sync 是一个不错的选择

参考资料

https://midwayjs.org/docs/component_development

https://github.com/nktnet1/import-sync

https://github.com/httptoolkit/esm

posted on 2025-11-19 08:00  荣锋亮  阅读(0)  评论(0)    收藏  举报

导航