Redux的State不應該全部放在Store裡

2022-02-03 12:33:34 字數 981 閱讀 4898

使用了redux管理應用的狀態,應用的狀態不應該全部放在store裡面。

前端狀態主要有一下兩種:

1. domain data

2. ui state

1. domain data

來自於服務端對領域模型的抽象,比如user,product,這個應該放在store,方便更新data

2. ui state

大部分的ui state不應該放在store中,應該使用元件私有state。

1. ui層面的toggle狀態

主要包括 元件的顯示隱藏,按鈕的disable,列表的摺疊展開等

2. 表單中的input的state

3. 元件中的動畫相關的狀態,例如座標值

總之,redux中的state遵循以下原則:

1. 怎麼不笨拙,就怎麼做

3. 乙個元件內部的狀態,頻繁修改,若放在store中,則會頻繁更新store,由此產生的state的快照也沒有意義

4. 控制項的state不會對任何其他控制項產生影響,也不依賴store中的state時,就應該鎖在控制項內,不要放出了汙染store

5. 常見的一些頻繁更新的狀態,元件的style的height屬性,應該作為私有狀態,掛在eventlistener上來動態更新,

form表單中的input的state,應該是私有狀態,不應該放在store中,輸入乙個『hello world』,產生11個state快照

顯然沒有意義,還會影響效能,不迷信一些開源元件,例如 redux-form 的做法

6. 私有的ui state放在store,使用action進行切換,會增加額外的**量,不會產生任何收益

參考:

不應該,不應該

不應該在晚上喝一整瓶利咽的搞的反胃 不應該在吃大快活的時候點一杯奶茶的 不應該一天大腦都這麼緊張 有什麼辦法,都是自己找的 在天津累,天天加班。回到廣州上兩天班更累,連睡個覺6小時都保證不了。發現現在很容易失眠,因為大腦想事情太多了,又回到了n年前在大學又做專案又參加比賽的時候了。問題是以前我睡不著...

不應該罵騰訊

我們應該鼓勵創新這是沒有任何錯誤的。但是創新是乙個連貫的過程,不是說你靈光一現想出來個東西就是創新。目前,你不但需要提出你的新想法和技術,還要馬上確確實實的實現,而且還要實現的很好!競爭是推動社會發展的很重要的因素,社會不應該允許拿著所謂的創新想法而不去好好實現的行為,因為所有的想法不能很好的服務於...

「窮人」 就不應該創業?

青山資本 2015 12 07 22 38 收藏42 投資人在篩選專案時,如果能夠提前識別出不靠譜的創業者,對降低投資失敗風險當然是有幫助的。這篇文章是投資人張野根據自己的投資經驗做的小結。到今年年底,距離 大眾創業 萬眾創新 這個口號的提出就已經有一年零三個月了。這 400 多天裡,我們都領教了或...