课程章节介绍
同学们,我们来看这一页,讲的是“动态布尔属性”。这个概念其实特别实用,很多常见的组件交互都离不开它。
简单说,动态布尔属性就是用 JavaScript 表达式在运行的时候,动态算出一个 true 或者 false,来决定一个属性最终的值。这和静态写法完全不一样。
咱们先回忆一下静态写法。比如你在模板里写一个 ``,没有等号,也没有引号,就只写一个 `show`。在 LWC 里,这就意味着 `show` 属性存在,它就等于 true。也就是只要属性出现在标签上,它就是 true,删掉才是 false。这种叫“静态的布尔属性”,它的特点是:presence 等于 true,一出现就是 true。
而动态布尔属性,用的是 `{表达式}` 这种花括号绑定。比如 ``。这里的 `computedValue` 通常是父组件里定义的一个 getter,它会根据现在的组件状态返回 true 或 false。比如某个开关打开了,getter 返回 true;关上了,getter 返回 false。
当父组件的状态发生变化时,这个 getter 会立刻重新计算,算出新的布尔值,然后自动传给子组件的 `show` 属性。子组件收到新的 true 或 false,就会重新渲染自己,比如显示出来或者隐藏掉。
这就实现了一种标准模式,你一定接触过——显示/隐藏、启用/禁用、展开/折叠,这些切换行为全都可以用动态布尔属性搞定。而且跟静态属性比,它直观多了:表达式的实际运算结果是什么,属性就是什么,不需要猜“属性存不存在”。
最后再强调一下关键区别,帮助大家记住:对于静态属性,只要你在标签上写上属性名,它就等于 true,存在即为真;而对于动态表达式,JS 表达式算出来的布尔值才决定最终的属性值,是 true 就是 true,是 false 就是 false,更直接、更灵活。
好了,这一页就这些。现在大家应该很清楚动态布尔属性的用法和好处了,接下来我们看看实际代码怎么操作。
关键词
LWC
Lightning Web Components
Salesforce