當閱讀了Redux文檔我發現,文檔提到了這一點:仍然爲什麼redux應該是可序列化的?
,你應該盡最大努力保持狀態序列化。 不要把任何東西放在裏面,你不能輕易變成JSON。
所以我的問題是,保持狀態序列化的好處是什麼? 或者,如果我將不可序列化的數據放入存儲區,可能會遇到什麼困難?
我相信這不是唯一的redux - 通量,即使React本地狀態表明同樣的事情。
爲了讓我清楚這裏是一個例子。假設商店結構是這樣的。
{
books: {
1: { id: 1, name: "Book 1", author_id: 4 }
},
authors: {
4: { id: 4, name: "Author 4" }
}
}
這應該都很好看。然而,當我試圖進入「1書的作者」,我必須寫這樣的代碼:
let book = store.getState().books[book_id];
let author = store.getState().authors[book.author_id];
現在,我要定義一個類:
class Book {
getAuthor() {
return store.getState().authors[this.author_id];
}
}
而且我的商店將是:
{
books: {
1: Book(id=1, name="Book 1")
},
...
}
所以,我可以用輕鬆搞定作者:
let author = store.getState().books[book_id].getAuthor();
第二種方法可以使「書」對象知道如何檢索作者數據,因此調用者不需要知道書和作者之間的關係。那麼,爲什麼我們不使用它,而不是像方法1那樣在商店中保留「普通對象」?
任何想法表示讚賞。
在JS中,您可以進行泛型調用/應用調用,因此這樣的defs不需要駐留在數據中,而且無論如何都應該分離數據和邏輯。如果你想要方便的有條不紊的好東西,可以創建另一個抽象層。 – dandavis