javascript - React useState 是如何工作的?vanila js怎么可能呢?
问题描述
想了解一下,如何用纯js搭建。我希望它是这样的:
const useStatePureJs = () => {
let state = null;
const setState = (value) => {
state = value
};
return [
state,
setState
];
};
const [state, setState] = useStatePureJs();
setState(5);
console.log(state);
但是由于范围初始化,我的 console.log 将返回 null。如何使用纯 js 实现对其进行更新?我的意思是价值。我需要一个观察者还是什么?
解决方案
那这个呢?似乎可以按您的预期工作。
const useStatePureJs = () => {
let state;
const getState = () => {
return state
}
const setState = (x) => {
state = x
}
return [ getState, setState ]
}
const [ getState, setState ] = useStatePureJs()
setState(1)
console.log(getState()) // 1
setState(2)
console.log(getState()) // 2
推荐阅读
- python - 如何在 Pydroid 3 中捕获应用程序发送的数据?
- javascript - Axios Put 不更新 Value
- rest - 如何在 RAML 1.0 中将 UriParameter 设为可选
- jquery - 错误 405 方法不允许 .net core 2.2 mvc
- sql - ORACLE SQL:多个分组层和中间结果
- shell - 循环中的行数问题
- apache-spark - Spark Mapreduce 在具有多种功能的函数上
- java - android - 电子邮件地址格式错误的firebase
- sql - 为什么 RAISE NOTICE 在 Redshift 中不起作用?
- c# - 无法夹紧相机的旋转