10道高频Qiankun微前端面试题快问快答

※其他的快问快答,看这里!

10道高频Qiankun微前端面试题快问快答
10道高频webpack面试题快问快答
20道高频CSS面试题快问快答
20道高频JavaScript面试题快问快答
30道高频Vue面试题快问快答
在这里插入图片描述

面试中的快问快答

快问快答的情景在面试中非常常见。

在面试过程中,面试官通常会使用快问快答的方式来快速评估面试者的基础知识、思维能力和反应速度。

这种情景下,面试官会提出一系列简短的问题,并期望面试者能够迅速做出回答或提供简洁明确的解释。

对于面试者而言,快问快答是一个展示自己知识储备和应变能力的好机会。

在这种情景下,要保持冷静并尽量给出准确的答案。如果不确定或不清楚某个问题,可以直接说明,并表达自己的思考方式和求解问题的能力。

但更建议在快问快答中继续深入理解每个知识点!这有助于对知识的进一步分析!

Qiankun面试题10道快问快答

在这里插入图片描述

1. 什么是 qiankun 微前端?

qiankun 是一个基于 single-spa 的微前端实现库,可以帮助我们将多个独立的前端应用整合成一个整体,并且可以独立开发、独立部署、独立运行。

2. qiankun 微前端的优势是什么?

qiankun 微前端的优势包括:

  • 可以将多个独立的前端应用整合成一个整体,提高了代码复用性和可维护性。
  • 可以独立开发、独立部署、独立运行,提高了开发效率和部署灵活性。
  • 可以实现子应用之间的通信和数据共享,提高了应用之间的协作能力。
  • 可以实现子应用的按需加载和动态卸载,提高了应用的性能和用户体验。

3. qiankun 微前端的核心概念有哪些?

qiankun 微前端的核心概念包括:

  • 主应用:整个微前端应用的入口,负责加载和管理子应用。
  • 子应用:独立的前端应用,可以独立开发、独立部署、独立运行。
  • 生命周期:主应用和子应用之间的生命周期钩子,用于控制应用的加载、启动、卸载等过程。
  • 沙箱:用于隔离子应用的 JavaScript 执行环境,防止子应用之间的冲突和污染。
  • 应用间通信:主应用和子应用之间的通信机制,用于实现数据共享和事件传递。

4. qiankun 微前端的基本使用流程是什么?

qiankun 微前端的基本使用流程包括:

  • 在主应用中安装 qiankun 库,并注册需要加载的子应用。
  • 在子应用中导出一个生命周期对象,并在主应用中注册该子应用。
  • 在主应用中启动 qiankun 应用,并指定需要加载的子应用。
  • 在主应用中渲染子应用的容器,并在容器中加载子应用。
  • 在主应用和子应用中实现应用间通信和数据共享。

5. qiankun 微前端的子应用如何实现按需加载?

qiankun 微前端的子应用可以通过导出一个异步加载函数来实现按需加载,例如:

export async function bootstrap() {
  // 子应用的启动逻辑
}

export async function mount() {
  // 子应用的挂载逻辑
}

export async function unmount() {
  // 子应用的卸载逻辑
}

在主应用中,可以通过 loadMicroApp 方法来动态加载子应用,例如:

import { loadMicroApp } from 'qiankun';

loadMicroApp({
  name: 'sub-app',
  entry: '//localhost:8080',
  container: '#sub-app-container',
});

6. qiankun 微前端的子应用如何实现动态卸载?

qiankun 微前端的子应用可以通过导出一个异步卸载函数来实现动态卸载,例如:

export async function unmount() {
  // 子应用的卸载逻辑
}

在主应用中,可以通过 unloadMicroApp 方法来动态卸载子应用,例如:

import { unloadMicroApp } from 'qiankun';

unloadMicroApp('sub-app');

7. qiankun 微前端的子应用如何实现与主应用的通信?

qiankun 微前端的子应用可以通过 window.__POWERED_BY_QIANKUN__ 全局变量来判断当前应用是否运行在 qiankun 微前端环境中,例如:

if (window.__POWERED_BY_QIANKUN__) {
  // 子应用运行在 qiankun 微前端环境中
}

在子应用中,可以通过 window.parent 访问主应用的全局对象,例如:

window.parent.postMessage({ type: 'message', data: 'hello' }, '*');

在主应用中,可以通过 onGlobalStateChange 方法来监听子应用的状态变化,例如:

import { onGlobalStateChange } from 'qiankun';

onGlobalStateChange((state, prev) => {
  // 子应用状态变化的回调函数
});

8. qiankun 微前端的子应用如何实现与其他子应用的通信?

qiankun 微前端的子应用可以通过 window.__POWERED_BY_QIANKUN__ 全局变量来判断当前应用是否运行在 qiankun 微前端环境中,例如:

if (window.__POWERED_BY_QIANKUN__) {
  // 子应用运行在 qiankun 微前端环境中
}

在子应用中,可以通过 window.dispatchEvent 方法来触发自定义事件,例如:

window.dispatchEvent(new CustomEvent('message', { detail: 'hello' }));
在其他子应用中,可以通过 window.addEventListener 方法来监听自定义事件,例如:

window.addEventListener('message', (event) => {
  console.log(event.detail); // 'hello'
});

9. qiankun 微前端的子应用如何实现路由跳转?

qiankun 微前端的子应用可以通过 history.pushState 方法来实现路由跳转,例如:

history.pushState(null, null, '/path');

在主应用中,可以通过 setMatchedPath 方法来设置当前子应用的路由路径,例如:

import { setMatchedPath } from 'qiankun';

setMatchedPath('/path');

在主应用中,可以通过 onGlobalStateChange 方法来监听子应用的路由变化,例如:

import { onGlobalStateChange } from 'qiankun';

onGlobalStateChange((state, prev) => {
  console.log(state.matchedPath); // '/path'
});

10. qiankun 微前端的子应用如何实现样式隔离?

qiankun 微前端的子应用可以通过 CSS Modules 或 CSS-in-JS 等技术来实现样式隔离,例如:

import styles from './index.module.css';

function App() {
  return <div className={styles.container}>Hello World</div>;
}

在主应用中,可以通过 prefetch 方法来预加载子应用的样式,例如:

import { prefetch } from 'qiankun';

prefetch('//localhost:8080/index.css');

在主应用中,可以通过 mount 方法的 sandbox 参数来开启样式隔离,例如:

import { loadMicroApp } from 'qiankun';

loadMicroApp({
  name: 'sub-app',
  entry: '//localhost:8080',
  container: '#sub-app-container',
  sandbox: { strictStyleIsolation: true },
});
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在2023年的前端面试中,可能会涉及到以下几个高频面试题: 1. 浏览器兼容性题及解决方案:面试官可能会询你在开发过程中遇到的浏览器兼容性题以及你是如何解决的。你可以提到一些常见的兼容性题,比如不同浏览器对CSS属性的支持不一致或JavaScript API的兼容性题。解决方案可以包括使用CSS前缀、Polyfill库或检测浏览器特性并提供不同的代码实现。 2. 前后端接口文档和接口测试:你可能会被到在前端开发中如何与后端协作。你可以提到根据后端提供的接口文档进行开发,使用工具(比如Postman)测试接口的可用性和返回值是否符合预期。同时,你还可以提到与后端沟通以了解前端需要的参数和数据结构。 3. 跨域题及解决方案:面试官可能会前端如何实现跨域。你可以解释浏览器的同源策略以及由此带来的限制。然后提到一些解决方案,如使用JSONP、CORS(跨源资源共享)、代理服务器或反向代理等。 综上所述,2023年前端面试可能涉及浏览器兼容性题及解决方案、前后端接口文档和接口测试、跨域题及解决方案等。记住在回答面试题时,要清晰、简洁地说明题和解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2023高频前端面试题总结(附答案)](https://blog.csdn.net/weixin_45102366/article/details/125525247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [2023高频前端面试题(含答案)](https://blog.csdn.net/weixin_44672169/article/details/116011608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yoo前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值