首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

将微前端做到极致-无界方案

:fiber="true" :degrade="false" :fetch="fetch" :props="props" :plugins="plugins" :beforeLoad...="beforeLoad" :beforeMount="beforeMount" :afterMount="afterMount" :beforeUnmount="beforeUnmount...js 可以返回响应外部的输入,但是这个颗粒度是 js 文件,如果子应用单个 js 文件过大,可以通过拆包的方式降低体积达到 fiber 执行模式效益最大化。...js 沙箱隔离 无界将子应用的 js 放置在 iframe(js-iframe)中运行,实现了应用之间 window、document、location、history 的完全解耦和隔离。...主应用可以向子应用注入 props 对象,里面可以注入数据和方法供子应用调用 内置的 EventBus 去中心化通信方案可以让应用之间方便的直接通信 生命周期 无界提供完善的生命周期钩子供主应用调用: beforeLoad

2.6K20

【微前端】1443- 将微前端做到极致-无界方案

:fiber="true" :degrade="false" :fetch="fetch" :props="props" :plugins="plugins" :beforeLoad...="beforeLoad" :beforeMount="beforeMount" :afterMount="afterMount" :beforeUnmount="beforeUnmount...js 可以返回响应外部的输入,但是这个颗粒度是 js 文件,如果子应用单个 js 文件过大,可以通过拆包的方式降低体积达到 fiber 执行模式效益最大化。...js 沙箱隔离 无界将子应用的 js 放置在 iframe(js-iframe)中运行,实现了应用之间 window、document、location、history 的完全解耦和隔离。...主应用可以向子应用注入 props 对象,里面可以注入数据和方法供子应用调用 内置的 EventBus 去中心化通信方案可以让应用之间方便的直接通信 生命周期 无界提供完善的生命周期钩子供主应用调用: beforeLoad

4.8K32

ajax后退操作解决办法

使用github项目 https://github.com/browserstate/history.js 问题场景 移动端网页列表(上拉加载执行ajax请求)中要在点击item详情页跳转后可返回,且返回页面中需要看到或定位到点击的来源位置...搜索找到好多方案 貌似history.js兼容各大浏览器,效果应该比较理想。...JQ后加载History的js文件:/history.js/scripts/bundled/html4+html5/jquery.history.js 测试分页使用scrollPagination的JQ...bottomHeight': $('.footer').height(), // it gonna request when scroll is 10 pixels before the page ends 'beforeLoad...history.js内部也是使用sessionstorage来缓存相关数据,所以设置state数据的时候需要将DOM对象转换为String字符串数据就可以缓存整个分页数据。

75220

乾坤(qiankun)微前端初体验

:7101', container: '#yourContainer', activeRule: '/yourActiveRule', }, ], { beforeLoad...发生变化,便会自动触发 qiankun 的匹配逻辑,所有 activeRule 规则匹配上的微应用就会被插入到指定的 container 中,同时依次调用微应用暴露出的生命周期钩子 微应用需要在自己的入口 js...(通常就是你配置的 webpack 的 entry js) 导出 bootstrap、mount、unmount 三个生命周期钩子,以供主应用在适当的时机调用。...// state: 变更后的状态; prev 变更前的状态 console.log(state, prev); }); props.setGlobalState(state); } js...js沙箱封装在qiankun的生命周期中。当一个子应用被销毁,其js沙箱也就被销毁。唯一不足的地方是,window的对象,无法隔离,最好不要绑定原型。

3.6K30

万字解析微前端、微前端框架qiankun以及源码

从上图我们可以看到我们外部引入的三个 js 脚本文件,这个模板文件没有外部 css 样式表,对应的样式表数组也为空。...然后我们再来分析 execScripts 方法,该方法的作用就是指定一个 proxy(默认是 window)对象,然后执行该模板文件中所有的 JS,并返回 JS 执行后 proxy 对象的最后一个属性(...在 第 90~98 行 是 qiankun 比较核心的部分,也是几个子应用之间状态独立的关键,那就是 js 的沙箱运行环境。...我们进入到 genSandbox 内部,看看 qiankun 是如何创建的 (JS)沙箱运行环境。(见下图) ?...触发 beforeLoad 生命周期钩子函数 在注册完了生命周期函数后,立即触发了 beforeLoad 生命周期钩子函数(见下图) ?

2.2K41

从零到一实现企业级微前端框架,保姆级教学

对于主应用来说,分为以下三个生命周期: 1.beforeLoad:挂载子应用前2.mounted:挂载子应用后3.unmounted:卸载子应用 当然如果你想增加生命周期也是完全没问题的,笔者这里为了简便就只实现了三种...常用于渲染子应用3.unmount:应用卸载时触发,常用于销毁子应用 接下来我们就来实现注册主应用生命周期函数: // src/types.tsexport interface ILifeCycle { beforeLoad...runBeforeLoad = async (app: IInternalAppInfo) => { app.status = AppStatus.LOADING; await runLifeCycle("beforeLoad...比如说当一个应用状态为非 NOT_LOADED 时(每个应用初始都为 NOT_LOADED 状态),下次渲染该应用时就无需重复加载资源了•如需要处理逻辑,比如说 beforeLoad 我们需要加载子应用资源...当我们拿到所有 JS 内容以后就该运行 JS 了,这步完成以后我们就能在页面上看到子应用被渲染出来了。

69110

微前端02 : 乾坤的微应用加载流程分析(从微应用的注册到loadApp方法内部实现)

我们在微前端01 : 乾坤的Js隔离机制原理剖析(快照沙箱、两种代理沙箱)一文中提到过,乾坤建立在single-spa的基础上,相对于single-spa,乾坤主要完成了两件事,微应用的加载和资源隔离...比如在微前端01 : 乾坤的Js隔离机制原理剖析(快照沙箱、两种代理沙箱)提到的三种沙箱,我们当时分析了其核心原理,但它们是如何在乾坤中的发挥作用的当时并没有提及,虽然微应用加载流程和沙箱机制有比较强的关联...在深入细节之前,请大家要明白loadApp的核心功能:那就是获取微应用的js/css/html等资源,并对这些资源进行加工,随后会构造和执行一生命周期中需要执行的方法,最终返回一个函数,而这个函数的返回值是一个对象...关于数组的reduce方法的妙用:execHooksChain 代码片段七执行完后,紧接着有一行代码: await execHooksChain(toArray(beforeLoad), app, global...); 我们先不关心beforeLoad中具体有哪些方法,具体有哪些方法由代码片段七决定。

2.8K20

JS

11630

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券