Third-Party Web Components — Overview & lwc:external

DEX475 - Third-Party Web Components (Beta)

📄 第 232 页 🎬 视频课程

课程章节介绍

同学们,今天我们来看一个特别有用的技巧:怎么把不是 Salesforce 原生的第三方 Web 组件,优雅地塞进我们的 Lightning Web 组件里。 在 LWC 里,我们有时会碰到这样一个指令,叫 `lwc:external`。它的作用就是告诉框架:“嘿,下面这个元素不是我自家孩子,它是一个外部来的自定义元素,请按普通 Web 组件的规矩对待它,别用 LWC 那套去编译它。” 这样,外面的轮子就能在咱们的 Lightning 环境里跑起来了。 那具体怎么集成呢?主要有三种路子。 第一种,也是最标准的方法。把第三方库打包成静态资源上传,然后用 `platformResourceLoader` 去加载它。这就像你把一个现成的工具箱放到仓库里,需要的时候再拿出来用。注意啊,这里有限制:单个文件不能超过 5 MB,整个组织所有静态资源加起来不能超过 250 MB,所以别啥都往里塞。 第二种,稍微直接一点。你可以通过一个 `.js-meta.xml` 配置文件,把那个第三方的 JS 文件当成一个独立的 LWC 模块,直接放到你的项目结构里。这种情况下,JS 文件不能超过 1 MB。适合那些比较轻量的库。 第三种,最硬核的方式:你完全可以在 JavaScript 里自己用原生的 customElements API,手动去定义和注册一个自定义元素。这就像自己画图纸造零件,灵活性最高,但也要你更深的了解 Web 标准。 不管用哪种方法,有一个关键开关必须要打开,那就是 ,Lightning Web Security,。它必须启用,不然这些外部自定义元素可能没法正常工作。还有就是,收件箱(Inbox)这个地方是不支持自定义元素的,因为收件箱的架构本身不支持 Web Component 的基础设施,这点要心里有数。 另外提一句,这个第三方组件可以来源于任何流行框架,比如 React、Vue,也可以是纯粹的香草 JavaScript 写的 Web Component。基本上只要它最终是一个标准的自定义元素,就能用。 最后,作为一个负责任的 Salesforce 开发者,咱们在到处找第三方库之前,一定先花几分钟去 AppExchange 和官方的基本组件库里搜一搜。也许你想要的功能 Salesforce 早就给你准备好了,不用自己折腾集成,又稳定又省事。 好了,关于 `lwc:external` 引入外部组件的这三种方式,以及要注意的点,都讲清楚了。有什么问题随时问。

关键词

LWC Lightning Web Components Salesforce