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