Javascript 在SystemJS中延迟导入
我刚刚开始在React中使用SystemJS/JSPM。在我的应用程序中,我使用了一些非通用JS模块格式的第三方库,如AMD、CJS等,因此当我安装这些库时,它们将作为全局模块安装。例如,以下是JSPM为一个库生成的JS文件:Javascript 在SystemJS中延迟导入,javascript,reactjs,systemjs,jspm,Javascript,Reactjs,Systemjs,Jspm,我刚刚开始在React中使用SystemJS/JSPM。在我的应用程序中,我使用了一些非通用JS模块格式的第三方库,如AMD、CJS等,因此当我安装这些库时,它们将作为全局模块安装。例如,以下是JSPM为一个库生成的JS文件: module.exports = require("npm:admin-lte@2.3.3/dist/js/app.js"); 该库在导入时运行一些初始化代码,因此它希望DOM元素在此之前准备就绪。如果我将其导入并与以下内容一起使用: import adminlte f
module.exports = require("npm:admin-lte@2.3.3/dist/js/app.js");
该库在导入时运行一些初始化代码,因此它希望DOM元素在此之前准备就绪。如果我将其导入并与以下内容一起使用:
import adminlte from "adminlte";
export default class Root extends React.Component {
render () {
return (
<div className="wrapper">
<MainHeader />
<MainSidebar />
<MainContent />
<MainFooter />
<ControlSidebar />
</div>
);
}
}
从“adminlte”导入adminlte;
导出默认类根扩展React.Component{
渲染(){
返回(
);
}
}
它不起作用了。我猜是因为在React将DOM呈现到浏览器中之前,已经导入了库并运行了它的初始化代码。那么,有没有办法延迟第三方库的导入,直到React呈现DOM为止
我在React中查看了一些生命周期事件,如componentDidMount等,但仍然不确定如何正确执行此操作最后,在主应用程序已加载后,使用System.import()导入第三方库以解决此问题:
<script type="text/javascript">
System.import("js/app/main.js")
.then(() => {
System.import("adminlte");
});
</script>
System.import(“js/app/main.js”)
.然后(()=>{
系统导入(“adminlte”);
});
这可能不是解决此问题的最佳方法,因此如果其他人有更好的方法,请建议使用它
import
语句,不幸的是不能像require()
语句那样有条件地或动态加载语句