@once
编辑此页面Solid的编译器使用一种启发式方法来处理响应式包装和JSX表达式的惰性求值。它会检查表达式是否包含函数调用、属性访问或JSX?如果是,当传递给组件时会将其包装在getter中,或者当传递给原生元素时包装在effect中。
了解这种启发式方法及其局限性后,我们可以通过在JSX外部访问那些我们知道永远不会改变的内容来减少开销。单独的变量永远不会被包装。我们也可以通过在表达式开头添加注释装饰器 /* @once */
来告诉编译器不要包装它们。
这种方式也适用于子元素。