20211214
微前端
什么是微前端
搞微前端目的就是要将产品原子化,由庞大的应用体系拆分为多个模块,再根据客户业务场景进行组合。每个功能模块能
单独迭代,自由集成。
微前端不是框架,不是工具/库,而是一套架构体系,它包括若干库,工具,中心化的治理平台及相关配套设施
微前端中的应用隔离
隔离问题分为主应用和微应用,微应用间进行
Javascript执行环境隔离,css样式隔离
-
css样式隔离- 主应用和微应用同屏渲染,会产生样式互相污染的问题,解决办法:
-
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">在你的样式文件中,为CSS规则定义默认命名空间:
@namespace "http://www.w3.org/1999/xhtml"; @namespace svg "http://www.w3.org/2000/svg";有了上面的声明。你就可以只为SVG原因应用CSS规则啦:
svg|a { color: white; }
-
-
b. 微应用间的隔离:每次应用加载时,将应用上所有的
link和style内容进行标记,然后应用卸载的时候卸载已标记的link和style即可
-
Javascript隔离-
使用沙盒机制
核心是:让局部的
Javascript运行时,对外部对象的访问和修改出在可控的范围内,即无论内部如何运行,都不会影响外部的对象
-
Decorator装饰器
介绍
用法
-
-
- 接受三个参数:
- 类的原型对象
- 需要装饰的属性名
- 装饰属性名得描述对象
- 接受三个参数:
Promise的值穿透
答案:
.then或者.catch的奇书期望是函数,传入非函数则会发生值穿透- 当
then传入的不是一个函数,则将会返回上一个promise.data的值,而且每一个无效的then返回的promise状态都为resolved
Javascript的脚本延迟加载的方式有哪些
deferasync- 动态创建DOM
- 使用
setTimeout延迟加载js文件 - 将
js脚本放在文档底部

浙公网安备 33010602011771号