`,你一个子组件标签都没写。
那它有什么好处呢?,性能!, 原生 HTML 内联渲染比创建成百上千个自定义组件实例要快得多,内存占用也少。而且这么做,组件作者(就是 Salesforce 团队)能对每一个细节的渲染和验证做更细致的控制,保证底层运行高效又安全。
那问题来了,为什么我们不所有地方都用扁平结构呢?凡事都有权衡嘛。扁平结构的缺点是,可读性和可维护性会变差,。如果你自己写了一个扁平结构的组件,里面全是以数据驱动的方式生成 HTML,别人(包括三个月后的你自己)看这段代码,可能一头雾水,不如看标签嵌套的合成结构那么一目了然。所以一般情况下,我们还是优先用传统的合成方式,它让代码更友好。
最后,老师给你一条性能指导:如果你发现自己的应用里,有特别多层的嵌套合成,结果界面反应慢,该怎么办?可以试试,扁平化,这个思路。怎么做呢?把一些逻辑往上提到父组件,尽可能把子组件里能改成原生 HTML 的地方直接内联掉,减少那些最底层的叶子组件里自定义元素的实例数量、事件处理程序的数量,以及避免不必要的重新渲染。说白了,就是把那些频繁创建、销毁的自定义元素,换成静态一点的原生元素,用父组件的逻辑去驱动,这样能大大提升大型数据场景下的性能。
好,今天就讲到这儿。记住:合成优雅易懂,扁平强悍高效,按需选择,关注数据量,你就能写出又快又漂亮的组件了。下课!
关键词
LWC
Lightning Web Components
Salesforce
|