前端数据管理

date
May 10, 2025
slug
frontend-data-management
status
Published
tags
Code
summary
type
Post
对于前端(客户端)来说,数据是将业务融入交互界面的方式,也就是说,数据层承前启后。
然而想管理好前端的数据,并不容易。
首先是需要有一套良好的数据结构定义。值得注意的是,应用程序的数据结构复杂度往往取决于真实业务的复杂性本身。以我们正在开发的IdeaSpark为例,publication(刊物)下有posts、name、id等字段,post下又有sentences、title、id等字段,其中sentence又是一颗可以单独拆出来的树形结构。我们的应用并不算复杂,如果是notion等超大型应用,全局的数据结构大概会是一颗很宽的深层嵌套对象。
深层对象,如深海般令人恐惧。那么把深层对象铺平怎么样?实际上并不会让数据管理变得更简单。即使把深层对象铺平,需要管理的数据类型还是那些,彼此之间的关联性需要手动构建,反而让事情变得更复杂了。
对前端来说,全局的数据结构深与宽,并不应当是一个令人困扰的难题。从JavaScript的底层机制来看,对象变量所存储的是对象的引用,对象(浅)拷贝只会将第一层的值拷贝过去,第二层所存储的仍然是引用,这意味着对于深层对象(即使有一百层),JavaScript的处理速度也足够快,所以在根据现实世界的业务逻辑定义数据结构时,程序员不应当有心理负担,太谨慎反而无法设计出精巧的结构。除了引擎性能之外,前端的全局数据更像是一个蓝图,每次我们只需要按需从后端获取当下所需要的局部数据,按照蓝图提供的结构将获取到的数据进行组装。随着用户行为的发生,数据将会越来越完善。
前端数据管理最终为界面展示逻辑所服务,所以我们并不需要每次都对其进行自底向上的全面操作,只需取出当下所需要操作的对象,对其进行访问修改即可。
归根到底,前端不需要对数据操心是误解,前端的数据管理十分困难也并非事实。

© Warden 2024 - 2025