有這么一個場景:一個列表頁, 每一個列表項都有點贊按鈕, 已點贊為紅色激活態(tài), 未點贊為灰色.每一個列表項都能點擊跳轉(zhuǎn)進入詳情, 詳情頁面里也存在點贊按鈕.這時候如果在詳情內(nèi)點贊了, 如何把這個已點贊狀態(tài)傳遞到列表頁?想過幾個方案:每次進列表頁面重新請求, 但是這樣不夠優(yōu), 并且在分頁的情況下是不可行的.用vuex將列表數(shù)據(jù)存在全局store中, 在詳情頁面點贊的時候去修改store里的對應(yīng)數(shù)據(jù), 但是這樣需要維護store, 有一定成本, 退出列表后需要銷毀列表數(shù)據(jù), 避免數(shù)據(jù)占用內(nèi)存點贊后打個全局的標記, 每次進入列表頁面查看一下標記, 根據(jù)標記去做狀態(tài)的更新.想問問大家是怎么實現(xiàn)這樣的功能的? 有沒有更好的解決方案
1 回答

慕容3067478
TA貢獻1773條經(jīng)驗 獲得超3個贊
不管是列表項還是詳情項都會有一個唯一ID,將所有點過贊的數(shù)據(jù)ID,記錄到一個贊集合中(set 結(jié)構(gòu)),可以使用vuex管理。無論是在列表中還是詳情中,只要新加載項之后,如果當前加載的數(shù)據(jù)是贊就將數(shù)據(jù)ID添加到贊集合中。如果用戶點贊,則將ID添加到贊集合中,如果取消贊則將ID從贊集合中取消。讀取用戶是否贊只需要根據(jù)ID是否存在于贊集合中即可。將全站的贊狀態(tài)統(tǒng)一管理,可以做到一處操作,全站狀態(tài)更新。
添加回答
舉報
0/150
提交
取消