第一篇介绍了如何将React组件转换为Web Component
第二篇介绍了子应用(Web Component)中的路由可以正常作用与Shell App
第三篇介绍了Sub App与Shell App通过属性或自定义事件交互
第四篇介绍Web Component + React实现微前端的POC
本文(及后续)在先前的基础上,思考如何做性能改进,及其他与微前端相关的话题。
第一个问题,如果所有sub app都用react,那么是否可以把相关依赖从sub app提升到shell app? 因为如果每个sub app都独立打包,并且把react依赖都打包进去,会导致bundle文件过大。
在原先代码的基础上,修改过程如下:
打开sub-app-01 -> webpack.config.js -> 添加
externals: {
'react': 'React',
'react-dom': 'ReactDOM'
}
上述配置告诉webpack打包的时候跳过react、react-dom,具体语法参考WebPack官网
打开public/index.html, 添加react、react-dom的js引用。 这是为了单独测试sub-app-01用的,运行
npm run build
node ./src/server.js
可以查看效果
<script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
参考React官网
最后,打开shell app -> public/index.html,同样加上上述script的引用
可以看到对比完全打包的bundle,这种方式小了很多,从158KB下降到了32KB。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。