如果有错误,欢迎留言指教~ Q_Q
如果想要连续执行更新 state,你会发现看起来执行了三次,但最後却只有执行一次!?
const [date, setDate] = useState(0);
const handleClick = () => {
setDate(date + 10);
setDate(date + 10);
setDate(date + 10);
};
// data -> 10
当触发 setState
时,并不会先马上改变 state
,而是会把改变的 function 先放进 queue 里,最後 React 才会统一处理 setState
去 re-render component。
这是 React 的 batching 的效能优化机制,让 setState
呈现非同步的模样,让当下 state 并不会马上被改变,只会在最後触发 render
...
state
是当某个改变正在被应用时对 component state 的一个参考。它不应该直接被 mutate。
setState(updater, [callback])
setState((state, props) => {
...
});
Function 将接收先前的 state 作为第一个参数,并且将更新的 props 作为第二个参数:
const [date, setDate] = useState(0);
const handleClick = () => {
setDate((preDate) => preDate + 10);
setDate((preDate) => preDate + 10);
setDate((preDate) => preDate + 10);
};
// data -> 30
然後,下篇待续罗~
我其实没写完鸭 XDDD
<<: 30-10 之Presentation Layer - MVVM ( Model-View-ViewModel )
>>: [Day12] Face Detection - 使用OpenCV & Dlib:Dlib MMOD
流程控制 JavaScript在执行网页上的动画特效时,透过流程控制可以决定动画物件出现的先後顺序,...
去了 4 次,每次总是要买点东西才回家XDD 越买越大包,这就是另一件事情了... 有鉴於 4 次...
Day 27 Filebeat with multiple module and ELK Dashb...
Scrum Kanban(看板) 有部美剧叫Silicon Valley (矽谷群瞎传),由HBO出...
您应该生成公钥和私钥的密钥对,并将私钥保密。CSR 包含有关主题的信息、公钥、由私钥签名以避免欺骗 ...