课程章节介绍
同学们,咱们今天来看看Lightning Web Security,也就是LWS,在兼容第三方库这块儿带来的巨大进步。
以前我们在Salesforce里用的是Locker服务,那个安全机制限制很多,动不动就让一些常用的JavaScript库跑不起来,调试起来非常头疼。而LWS换了一种思路,它使用的是一个JavaScript虚拟沙箱。这个虚拟沙箱更聪明,它模拟的是标准浏览器环境,而不是像Locker那样自己去限制一大堆东西。
所以,带来的直接好处就是:绝大多数现代的第三方库,你直接拿过来就能用,不需要做任何修改。因为LWS下面暴露出来的DOM API,基本上就跟你在普通浏览器里看到的一样,再也没有Locker加上的那些奇奇怪怪的限制了。
不过呢,有一个小坑需要注意一下。有些库会显式地在代码里写上“use strict”启用严格模式。LWS在处理严格模式指令时,用了自己的方式,这可能会导致一部分这样的库需要做一些调整才能正常工作。这种情况并不常见,但你得知道。
那如果真是点背,某个库在LWS下还是跑不起来,该怎么办呢?解决路径其实跟我们之前在Locker下遇到问题一样。要么直接去联系库的维护者,看看他们愿不愿意适配;要么你厉害的话,自己给那个库贡献一个修复补丁;再不然,干脆把这个库fork一份,自己维护一个内部版本。
最后给大家一个强烈建议:如果你们组织现在还在用老旧的Lightning JavaScript,也就是还跑着Locker服务的话,赶紧把迁移到LWS当成一个优先任务。它真的能让你跟第三方JavaScript打交道时,省掉无数麻烦,工作流程一下子就清爽多了。
关键词
LWC
Lightning Web Components
Salesforce