Dynamic Components — Packages & Debugging

DEX475 - JavaScript

📄 第 169 页 🎬 视频课程

课程章节介绍

好,同学们,今天我们来说说动态组件在打包方面的“脾气”。别看动态组件平时用着挺顺,一旦涉及到包的类型,它就会有点挑剔。 首先记住一个关键点:动态组件呢,在,托管包,里是能正常工作的,但在,解锁包,里是不行的。如果你打算把组件打包发布出去,要注意这个限制。另外,如果你是从托管包里导入动态组件,千万别用默认的“c”命名空间,一定要用托管包自己的命名空间。因为动态组件在查找时,认的是命名空间,弄错了它就找不到回家的路了,自然就歇菜了。 那调试的时候,怎么判断动态组件到底有没有真正换成功呢?最权威的办法就是用浏览器开发工具检查一下 DOM。当组件的构造函数发生变化时,页面上的元素标签应该是物理性替换掉的。如果你发现标签还是老样子,那就说明交换没发生,问题就出在路径或者配置上。 那怎么排查呢?我给大家总结了一个检查清单,遇到问题可以按这个顺序来: 第一,,确认 LWS 也就是 Lightning Web Security 已经启用,——这可是硬性要求,没它不行。 第二,检查 ,.js-meta.html 配置文件,是否设置正确,这个文件就是组件的“户口本”,信息得对。 第三,核实一下 ,API 版本,,是不是和动态组件兼容。 第四,在开发期间,建议,把持久缓存暂时关掉,,有时候缓存会让你误以为更新了,其实没生效。 第五,再仔细检查一下,导入路径的格式,,特别是命名空间,别写错。 第六,验证一下,构造函数是否有效,,比如是不是用正确的组件类来构造的。 第七,打开浏览器控制台,看看有没有,报错信息,,哪怕是一条小红字都可能藏着线索。 最后,再看一眼,网络标签页,,确认有没有真正发出导入组件的请求。如果请求都没发出去,那肯定没戏。 照着这个清单走,基本就能把动态组件不工作的问题给揪出来。动态组件虽然灵活,但就像个要带钥匙进门的家伙,少了一步都不行。好了,这部分就讲到这儿,大家实践中可以多试试。

关键词

LWC Lightning Web Components Salesforce