面试题答案
一键面试实现思路
- 使用
batch
函数来包装信号值的更新操作。batch
函数能将多个状态更新合并为一次,从而确保只触发一次视图更新。 - 先判断特定条件是否满足,在满足条件时执行
batch
中的更新操作。
关键代码示例
import { createSignal, batch } from 'solid-js';
// 创建信号
const [count, setCount] = createSignal(0);
// 假设的特定条件
const shouldBatchUpdate = true;
if (shouldBatchUpdate) {
batch(() => {
setCount(count() + 1);
setCount(count() + 1);
// 可以有更多基于count信号的更新操作
});
}
在组件中使用这个信号:
import { createSignal, batch } from'solid-js';
import { render } from'solid-js/web';
const App = () => {
const [count, setCount] = createSignal(0);
const shouldBatchUpdate = true;
if (shouldBatchUpdate) {
batch(() => {
setCount(count() + 1);
setCount(count() + 1);
});
}
return <div>{count()}</div>;
};
render(() => <App />, document.getElementById('app'));