Web前端状态管理

作者: 张小程 | 来源:发表于2018-11-12 07:32 被阅读30次

前端状态管理是很多流行框架统一在做的事,翻开官方文档都有相关的介绍。React框架有Redux,Vue框架有Vuex。但是官方文档并不是万能的解药,依旧没有从本质上解决大家理解这个东西的疑惑。

我习惯将一些复杂的知识点结合Web发展过程总结一些自己的看法,以下是我理解的所谓状态管理,如有偏颇仅代表我个人见解,欢迎吐槽。

我们先假设一个背景,就是以下所有的故事背景都发生在没有电子设备和即时聊天工具的年代。

场景一

我和老王是好朋友,每天下班我们都会坐在公司楼下的酒馆聊天。每天的内容五花八门,后来我们每天都讨论技术相关的东西,不亦乐乎。有天我们聊得内容很多,第二天突然想起有个比较关键的内容,向老王求解,结果他也忘了。后来每次去酒馆都会带上一个本子记下某个关键内容,防止无从查找,而且两个人都能翻阅。

这个场景描述的是Web之前很少有两个以上的页面或者组件发生数据的交互,大家各自记得自己的状态就好,而当两个组件或者页面交互时,通常会采用Storage或者父子组件监听兄弟组件Bus来完成,能实现功能就是当前最优方案。

场景二

后来公司组织技术培训会,一下来了很多人,每个人都准备了很多要说的内容。不光有集中讨论还有小组讨论,大家都积极发言。但是最后要写会议纪要的时候,所有人都懵了,因为谁也不记得谁都说了什么,或者谁补充了谁的技术观点,场面无比的尴尬。

然后大家重新翻开自己和小组的内容记录一条一条的写在了会议室的白板上。关键内容和补充内容一一匹配,花了很长时间,终于搞定了。大家心里不停的骂街,却都无可奈何。

这个场景描述的是,当出现多个组件,或者多个层级的组件进行数据交互时,在多个混乱的操作下,数据状态的修改和更新都没有按照预期的方向发展,也就是组件与组件之间互相维护多个单独数据状态,数据状态的不集中导致多个组件的数据发生混乱。

场景三

再后面每次参加公司的技术讨论会,我们都按顺序在白板上写上对应的内容,有人补充或者反驳都会修改白板上的内容,大家也都能看到。小组讨论出结果也会同步修改白板上的内容,这样随便找个人写会议纪要就可以了,大家终于不骂街了。

后来听说隔壁的两家公司也借鉴了我们的方法,说明我们的方法还是有很多可取之处的。忘了说了我们公司叫Angular,隔壁两家公司一个叫React,另一个叫Vue。我觉得都没有我们公司牛X,我们是第一个想到这个方法的。

通过以上这三个场景,我觉得能让大家直观的看到什么是状态管理。在Angular框架中,所有的状态其实是挂在全局上的,每次更新和修改都是通知全局,然后由全局通知所有用到这个状态的组件。因为是状态集中管理和分发机制,所有组件都没有全部所属权。React和Vue框架都借鉴了这一点,但是是通过一个独立的模块Redux或Vuex来完成。

小结

前端状态管理实际上解决的就是组件通讯以及状态集中管理和分发的问题。不管官方文档如何去描述,核心就是这样。而市面上很多讲解的书籍或者文章也都是官方术语阐述,说实话有的时候太干未必是一件好事。

相关文章

  • Web前端状态管理

    前端状态管理是很多流行框架统一在做的事,翻开官方文档都有相关的介绍。React框架有Redux,Vue框架有Vue...

  • 组件分享之前端组件——用于表单状态管理和验证的 React Ho

    组件分享之前端组件——用于表单状态管理和验证的 React Hooks (Web + React Native) ...

  • 对前端状态管理的个人理解

    前端状态管理请三思 在这篇文章中提到了前端状态管理的一种思路,也就是使用有限状态自动机来管理前端状态。初读时我没有...

  • 第一章 初识 Vue.js

    1、Vue 提供了现代 Web 开发中常见的高级功能,比如:解耦视图与数据、可复用的组件、前端路由、状态管理、虚拟...

  • web前端vue:Vuex状态管理基本使用

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应...

  • Web前端

    Web前端 web前端是什么- 定义 职责 web前端基础知识和学习路线 web前端学习的资源 1.Web前端是...

  • 基于Vue和WebSocket开发的聊天应用

    这是一个Web版的聊天应用,前端基于Vue来构建,用Vuex来进行状态管理,webpack构建;服务端通过webs...

  • 模块化

    前端开发的发展 近年来 Web 应用变得更加复杂与庞大, Web 前端技术的应用范围也更加广泛。从复杂、庞大的管理...

  • 无标题文章

    #Web前端 - web前端是什么 - 定义 - 职责 - web前端基础知识和学习路线 - web前端学习的...

  • 2018-05-16

    web前端开发 什么是web前端 web前端开发也戏称“web前端开发攻城狮”,目前这个职位也叫“大前端”。这个职...

网友评论

    本文标题:Web前端状态管理

    本文链接:https://www.haomeiwen.com/subject/accqfqtx.html