[React] For sync code initialise state, you don't need useEffect

Here is a component which doesn't need to use useEffect

export function LocalTodos() {
    const [todos, setTodos] = useState([])
    
    useEffect(() => {
        const storedTodos = localStorage.getItem('todos')
        if (storedTodos) {
            setTodos(JSON.parse(storedTodos))
        }
    }, []);
    
    return (
       ...
    )
}

 

Because using localStorage.getItem('todos') which is sync API. so you can actually do:

export function LocalTodos() {
    const storedTodos = localStorage.getItem('todos');
    const [todos, setTodos] = useState(JSON.parse(storedTodos) || [])
    
    return (
       ...
    )
}

This tip only apply for SYNC code, doesnt' apply to AYNC code.

posted @   Zhentiw  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-04-08 [Tools] Kill the process running on port 8080
2020-04-08 [RxJS] Encapsulate complex imperative logic in a simple observable
2020-04-08 [RxJS] Remember previous value by using pairwise operator
2019-04-08 [Functional Programming] Build a Query function by using Crocks (Pred, Pair, Maybe)
2018-04-08 [Angular] ngx-formly (AKA angular-formly for Angular latest version)
2018-04-08 [React Router] Create a ProtectedRoute Component in React Router (setState callback to force update)
2017-04-08 [SCSS] Organize SCSS into Multiple Files with Partials
点击右上角即可分享
微信分享提示