组件通信与共享状态
Vue与React 前端开发基础#Python全栈#第八阶段#Vue与React 前端开发基础#组件通信与共享状态约 740 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
兄弟组件需要共享数据时,应该如何确定状态归属?
追问 购物车列表与金额汇总怎样通过共同父组件保持一致?什么时候再考虑独立 store?
什么是状态提升,为什么不应在多个组件保存同一份可变事实?
追问 列表已选 ID 与“是否全部选中”怎样保持一致?哪些值适合由已有状态计算得到?
Vue 的 provide/inject 与 React Context 适合怎样的跨层传递?
追问 主题、语言与服务对象各如何使用?它们是否自动替你完成所有状态管理和持久化?
什么时候局部状态足够,什么时候需要全局状态管理?
追问 弹窗开关、当前用户与跨页面购物车应如何选择?为什么把所有状态放进全局 store 也会增加维护成本?
Pinia store 的 state、getters 与 actions 可以怎样分工?
追问 购物车条目、总价和提交操作各放在哪里?怎样避免 getter 中执行异步副作用?
直接解构 Pinia store 的状态,为什么可能失去响应式关联?
追问
storeToRefs 适合提取什么?状态、getter 和 action 应如何分别处理?React Context 与 reducer 如何组织一个小型共享状态方案?
追问 怎样定义 action 和派生数据?Provider 值变化会影响哪些消费者,如何根据实际问题拆分?
服务端数据、客户端界面状态与 URL 状态有什么区别?
追问 用户资料、弹窗开关和筛选页码为什么可能需要不同存放位置与同步策略?
保存共享状态到浏览器存储时,应考虑哪些一致性问题?
追问 用户切换、退出登录、数据结构升级和多标签页分别可能导致什么旧数据问题?
通用组件怎样同时支持受控使用与内部状态?
追问 以分页或弹窗组件为例,怎样明确默认值、外部值和变更通知,避免出现两个相互竞争的数据来源?
核对资料: Pinia:定义 Store。