Skip to content
On This Page

面试题[微前端]

1. 微前端基础知识

1.1 在微前端技术选型的时候是如何考虑的

1.2 微前端如何实现作用域隔离

微前端实现作用域隔离涉及解决三个核心问题:JavaScript隔离、样式隔离、元素隔离。以下是对这三个问题的详细解释:

  1. JavaScript隔离: 在微前端框架中,JavaScript隔离是关键问题之一。它涉及到全局变量污染和事件冲突等情况。解决方法之一是使用沙箱(sandbox)机制。沙箱允许在一个独立的环境中运行程序,可以隔离当前执行环境的作用域和外部其他作用域,确保环境间不受影响。通过使用沙箱,可以实现对全局变量的隔离,避免不同子应用之间相互干扰的情况发生。
  2. 样式隔离: 在微前端架构中,样式隔离是确保各个子应用之间样式不相互干扰的重要问题。一种常见的解决方案是使用Scoped CSS。Scoped CSS通过给样式选择器添加唯一的作用域属性,实现样式隔离。这样,每个子应用的样式规则只会作用于其自身的组件,不会影响到其他组件,从而保证了样式的独立性和隔离性。
  3. 元素隔离: 元素隔离是指在微前端架构中确保各个子应用之间的DOM元素不会相互影响。这可以通过使用Web Component中的Shadow DOM来实现。Shadow DOM允许将一个独立的DOM子树附加到元素上,并且这个子树和主文档的DOM树是分开的,从而实现了DOM元素的隔离。每个子应用都可以拥有自己的Shadow DOM,确保了DOM结构的独立性和隔离性。

综上所述,微前端实现作用域隔离需要解决JavaScript隔离、样式隔离和元素隔离这三个关键问题。通过使用沙箱机制、Scoped CSS和Shadow DOM等技术手段,可以有效地实现对代码、样式和DOM结构的隔离,确保各个子应用之间的独立性和稳定性。

1.3 在子应用单独启动的情况下,怎么获取主应用的cookie信息

在子应用单独启动的情况下,要获取主应用的cookie信息,通常需要进行跨域访问,并且主应用需要开放相应的跨域访问权限。具体方法如下:

  1. 跨域访问设置:主应用需要配置允许跨域访问的策略,通常是通过设置CORS(跨源资源共享)策略来实现。可以在主应用的服务器端配置Access-Control-Allow-Origin头部,允许子应用的域名进行跨域访问。
  2. 在子应用中发送请求:子应用可以通过发送HTTP请求到主应用的服务器来获取cookie信息。这可以是一个简单的GET请求,或者使用XMLHttpRequest、Fetch API等技术。
  3. 处理响应:主应用服务器收到子应用发送的请求后,如果已经配置了允许跨域访问,会将响应发送给子应用。子应用可以从响应中获取到主应用的cookie信息。
  4. 处理Cookie:在子应用中接收到主应用的响应后,可以通过相应的方式获取cookie信息,例如,使用Document.cookie属性来获取cookie信息。

需要注意的是,获取主应用的cookie信息可能涉及到安全性和隐私问题,需要确保获取cookie的操作是合法且安全的,同时用户需要明确同意共享这些信息。

2. 微前端拓展知识

3. qiankun

3.1 为什么选择 qiankun

3.2 qiankun 的原理

3.3 qiankun 的不足之处

3.4 qiankun 的 JavaScript 沙箱和 CSS 沙箱原理是什么