换个角度想
状态像球场的记分牌:比分记在牌子上,而不是观众的喊声里。每得一分先改记分牌,全场看到的比分自然同时更新。
术语 · 前端
State
决定界面当前如何显示的数据,例如菜单是否展开或用户是否登录。
界面的样子,由一份数据决定
menu"收起""展开"
unread03
状态像球场的记分牌:比分记在牌子上,而不是观众的喊声里。每得一分先改记分牌,全场看到的比分自然同时更新。
likedfalse
count0
click
「该更新了」
count
给界面一个初始状态
菜单展开还是收起、深色还是浅色模式,背后都是一份状态。
购物车角标、列表和结算价读同一份状态,所以永远一致。
界面显示不对时,先看状态数据对不对,再查渲染逻辑。
点了「收藏」,图标变红了;刷新页面又变回了灰色。这说明状态存在哪里?
变红说明点击更新了内存里的状态;刷新后丢失,说明它只存在内存里,没有写到后端或本地存储。想让页面「记住」,就要把状态持久化。
状态越多,界面越难预测。能从现有状态算出来的值(比如总价)不要再存一份,两份数据迟早会对不上。