Lightning Web Component 安全性相关知识
2020-06-29 本文已影响0人
程程哥
JavaScript 的严格模式
Lightning Web Component 是遵循了 JavaScript 的严格模式,所以在开发时有一些强制规定,比如所有变量必须用 var、let、const 等关键字声明等。
关于严格模式的详细信息,可以参考官方文档。
DOM 访问限制
在访问 DOM 时,不能使用 window 或 document 这些全局变量,而要使用 this.template 变量。比如使用 this.template.querySelector() 代替 document.querySelector()。
Locker Service 提供了一组安全性更高的封装类:
- SecureWindow:封装了 window 全局变量
- SecureDocument:封装了 document 全局变量
- SecureObject:代表了被 Locker Service 封装的对象,其细节是无法访问的
- SecureLightningElement:封装了 LightningElement 类,也就是所有 Lightning Web Component 继承的类。我们无法直接继承 SecureLightningElement 类,但是在运行时它会取代 LightningElement
- SecureTemplate:封装了 template 对象
其他限制
第三方的类库无法直接使用,必须上传为静态资源(static resource)。
外部的图片、字体、文件的链接必须使用 https 而非 http。
以下全局变量无法使用:
- $A
- Aura
- Sfdc
- sforce