如果我们自己使用普通JavaScript编写ReactJS useState(),该如何编写?
它实际上将如何实施?如果我们能够使用如果我们自己使用普通JavaScript编写ReactJS useState(),该如何编写?,javascript,reactjs,Javascript,Reactjs,它实际上将如何实施?如果我们能够使用 const [count, setCount] = useState(0); 而且count能够在第一次获得0,但在以后的调用中获得更晚的状态,如果我们必须使用普通JavaScript实现useState(),该如何实现?问题是,useState()并不是所有函数都通用的。在每个函数中,即使函数A和B都使用useState(0),它也可以有单独的状态 我认为以下几点将非常接近,尽管我不知道这是否几乎相等: function A() { printSom
const [count, setCount] = useState(0);
而且count
能够在第一次获得0
,但在以后的调用中获得更晚的状态,如果我们必须使用普通JavaScript实现useState()
,该如何实现?问题是,useState()
并不是所有函数都通用的。在每个函数中,即使函数A和B都使用useState(0)
,它也可以有单独的状态
我认为以下几点将非常接近,尽管我不知道这是否几乎相等:
function A() {
printSomething('hi');
}
function B() {
printSomething('hi');
}
A() // => 'hi'
A() // => 'I know you are calling me more than one time'
A() // => 'I know you are calling me more than one time'
B() // => 'hi'
B() // => 'I know you are calling me more than one time'
React按照钩子在第一次渲染时被调用的顺序跟踪钩子。这也是为什么必须始终以相同的顺序无条件调用钩子的原因。除了“原则”之外,我希望看到它是如何在实际代码中编写的。react是开源的,所以请继续在repo中查找它。在我的第一条注释中添加react还跟踪当前呈现的组件。因此它知道a)哪个组件被渲染,b)钩子被调用的顺序。因此,当树中某个已定义位置的组件渲染时,调用第三个钩子时,它假定该钩子与第一次渲染该组件时调用第三个钩子的钩子相同。