课程章节介绍
同学们,今天我们来看一个 LWC 里非常强大,但其实你很少会用到的功能——用 `render()` 方法实现动态模板。
首先记住一点:`render()` 它不是一个生命周期钩子,而是一个受保护的方法,必须定义在组件的原型链上,而且你的 JavaScript 文件里要显式地写出来。
那它能干什么呢?简单来说就是——“按需换脸”。你可以为同一个组件创建多个 HTML 模板,然后用 `import` 把它们引进来,再在 `render()` 方法里根据组件的当前状态,决定返回哪一个模板。每一个额外的模板都可以配一个同名的 CSS 文件,样式也会跟着一起切换。
听起来挺酷的对吧?但 Salesforce 官方其实建议,绝大多数情况下,你直接用 `lwc:if`、`lwc:elseif` 这些条件指令在一个模板里处理就够了。什么时候才需要多个模板呢?就是当不同状态需要完全不同、几乎没啥共同点的标记结构时。比如,一个组件在“浏览模式”和“编辑模式”下,整个 DOM 结构天差地别,这时候用 `render()` 返回不同模板,会让代码更干净。你也可以把它理解成其它框架里的代码拆分,只是换了一种方式实现。
所以记住:不是万不得已,别一上来就用多模板。先把简单的条件渲染用好,等真正碰到结构都完全不同的需求时,再拿出这个“大招”,让你的组件变得又清晰、又好维护。
关键词
LWC
Lightning Web Components
Salesforce