Open lawbc opened 1 month ago
schema能否支持动态import,比如schema: await import('./xxx.js')
schema用api动态加载就行了,再api配置上缓存,也不会重复加载
schema用api动态加载就行了,再api配置上缓存,也不会重复加载
api方式不支持加载模块化的js代码呢,有demo吗,因为一个页面的js文件需要导入其他js函数不是简单的返回json对象的
如你的:{ label: '用户管理', url: 'user', schema: userPage },
改成
{ label: '用户管理', url: 'user', schemaApi: { "method": "get", "url": "/pages/user/index", "cache": 2000 } },
后端返回这个json格式
如你的:
{ label: '用户管理', url: 'user', schema: userPage },
改成{ label: '用户管理', url: 'user', schemaApi: { "method": "get", "url": "/pages/user/index", "cache": 2000 } },
后端返回这个json格式
如果userPage中有一些自定义的逻辑需要import其他库函数就不行了,如果全都是单纯的js那很好办,都可以直接使用js:xxxx.js来加载,问题就是每个js都有可能有自定义逻辑的
杠精不看文档?/pages/user/index接口返回这个不就可以模块化加载了?
{"type":"page","onEvent":{"init":{"actions":[{"actionType":"custom","script":"console.log('加载你的动态js')"}]}}}
杠精不看文档?/pages/user/index接口返回这个不就可以模块化加载了?
{"type":"page","onEvent":{"init":{"actions":[{"actionType":"custom","script":"console.log('加载你的动态js')"}]}}}
没有杠精的意思,虚心请教,文档也看了很多遍了,确实不知道schemaApi如何加载模块化的js文件,直接return {}这种是官方有介绍,actionType为custom的文档里面没有看到过
杠精不看文档?/pages/user/index接口返回这个不就可以模块化加载了?
{"type":"page","onEvent":{"init":{"actions":[{"actionType":"custom","script":"console.log('加载你的动态js')"}]}}}
/pages/user/index这个是一个js文件,js里面又import了其他模块的js
实现场景:
在app组件中,把一个系统的所有页面都使用js编写(schema是js文件)然后设置到app的pages数组中,这样一个系统几百个页面会导致这个数组非常大,可能有5M,会不会出现性能问题,比如第一次进入页面卡顿
存在的问题:
因为无法使用js动态加载页面的schema,可能会导致第一次加载页面卡顿,pages使用schemaApi加载的话,js文件限制很多,我看只能是立即执行函数或者直接返回一个json对象才行,页面如果存在import就会报错
当前方案:
请粘贴你当前方案的完整 amis schema 代码...
index.js:
site.js(app的pages返回值)
上面这种需要一次性import所有的页面,导致pages对象非常大,有没有办法动态import呢