120.乾坤css隔离机制

本文介绍了在乾坤框架中实现单实例和多实例场景下子应用的样式隔离,探讨了如何通过配置沙箱隔离及使用Shadow DOM技术。同时,文章提到了使用data-xxx属性类似Vue的scoped,以及在start方法中配置样式隔离。此外,还讨论了JavaScript与ES的重要知识点笔记。
摘要由CSDN通过智能技术生成
  • 确保单实例场景子应用之间的样式隔离,但是无法确保主应用跟子应用、或者多实例场景的子应用样式隔离
start({sandbox : true})//沙箱隔离, 

判断沙箱隔离的方法,发现直接设置sandbox=true是不行的,需要使用experimentalStyleIsolation这个属性配置。

export function isEnableScopedCSS(sandbox: FrameworkConfiguration['sandbox']) {if (typeof sandbox !== 'object') {return false;}if (sandbox.strictStyleIsolation) {return false;}return !!sandbox.experimentalStyleIsolation;
} 
  • { strictStyleIsolation: true } 开启严格的样式隔离模式 ,shawod dom’
start({shadow:{ strictStyleIsolation: true }}) 

直观的可以看到,子应用的代码不是正常的dom,上面显示的shadow-root,先不管shadow-root是什么,接着往下看

  • experimentalStyleIsolation 给子应用加上自定义的data-xxx属性,相当于vue中我们通常使用的scoped,从生成的代码中可以看出来

在主应用中,通过配置sandbox做到样式隔离

start({ sandbox: { strictStyleIsolation: true } }); 

在start得时候配置得参数,但是只有等到start函数里面 frameworkStartedDefer.resolve() 之后才能往下执行. registerMicroApps只是准备好注册的应用配置信息,只有等调用了star

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值