js实现一个useState,简单的原理就是赋值然后更新渲染,大概伪代码如下:
function useState(initValue) {
let value = initValue;
function setValue(v) {
if (typeof v === "function") {
value = v(initValue);
} else {
value = v;
}
// 更新布局
renderWithMyHook();
}
return [value, setValue];
}
function renderWithMyHook() {
ReactDOM.render(<App />, document.getElementById("root"));
}