面试题答案
一键面试使用createStore进行状态管理的基本步骤
- 引入
createStore
:从solid-js
库中导入createStore
函数。 - 创建状态存储:调用
createStore
函数,传入初始状态对象,它会返回一个数组,包含当前状态和更新状态的函数。 - 在组件中使用状态和更新函数:在组件中解构出状态和更新函数,使用状态渲染视图,通过更新函数修改状态。
实现响应式的原理
createStore
基于Proxy和跟踪依赖来实现响应式。当访问状态对象的属性时,会收集依赖,当状态对象通过更新函数被修改时,Proxy会检测到变化,触发依赖的重新计算,从而更新视图。
简单示例
import { createComponent } from 'solid-js';
import { createStore } from'solid-js/store';
const Counter = createComponent(() => {
const [state, setState] = createStore({ count: 0 });
const increment = () => setState('count', s => s + 1);
const decrement = () => setState('count', s => s - 1);
return (
<div>
<p>Count: {state.count}</p>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
);
});
export default Counter;