面试题答案
一键面试在Solid.js项目中,可以这样使用createMemo
创建派生状态total
:
import { createSignal, createMemo } from 'solid-js';
const [count1, setCount1] = createSignal(0);
const [count2, setCount2] = createSignal(0);
const total = createMemo(() => count1() + count2());
使用createMemo
而不是直接在视图中计算count1 + count2
的原因如下:
- 性能优化:
createMemo
会缓存计算结果,只有当它依赖的响应式状态(count1
和count2
)发生变化时,才会重新计算。如果直接在视图中计算,每次视图渲染时都会重新计算,这在复杂计算或频繁渲染的场景下会导致性能问题。 - 逻辑分离:使用
createMemo
将计算逻辑从视图中分离出来,使代码结构更清晰,便于维护和测试。视图只关心展示数据,而计算逻辑集中在createMemo
中。