获得徽章 2
GoFrame是一款模块化、高性能、企业级的Go基础开发框架。GoFrame不是一款WEB/RPC框架,而是一款通用性的基础开发框架,是Golang标准库的一个增强扩展级,包含通用核心的基础开发组件,优点是实战化、模块化、文档全面、模块丰富、易用性高、通用性强、面向团队。 #青训营 x 字节后端训练营#
评论
将整个结构扁平化后收益特别多。
结构很清晰,我们可以很轻易的对数据进行处理。
特别是在特别大数据量的情况下,这种形式可以极大的提高性能,减去需要遍历的性能消耗。
以前各种在数组对象出现的弊端都消失了。
评论
添加
在数组对象形式中我们需要给一个父节点添加一个子节点我们首先需要拿到这个父节点的key,然后对整个数组结构进行遍历查找来找到对应的item拎出来push进他的children中,然后需要重新构造一个新的数组对象。
由于实在是太麻烦了我就列了大概思路,相信大家都会,我们会发现非常繁琐,接下来我会着重讲一下Map形式。
展开
评论
删除
在数组对象形式中我们需要删除一个节点的时候,还是很繁琐,先遍历再删除构造新的数组,想想都已经很麻烦了。
而在Map形式中我们直接delete对应id的项即可,如果该项有父节点,我们可以在对应parentId项中的childrenIds移除对应的id即可。
评论
修改
在数组对象形式中我们想修改某一个节点的title的时候,我们需要根据key遍历找出这个节点然后修改最后构造新的数组结构。
而在Map形式我们拿到想修改的id后就可以直接修改。
评论
渲染
就拿react来举例,我们一般渲染一个列表都是通过map进行遍历渲染,拿到对应的item通过itemRender()来处理对应的ReactNode,在渲染中其实两种状态的使用相差不大。
评论
子节点
在第一种结构中我们的子节点都是在父节点的children数组下的每一项,而每一项还会有各自的子节点存在于对应的children中。
而在第二种结构中每一项都可以当成是子节点,他们各自都拥有一个parentId,而根节点的parentId为空代表它没有父节点,他们的各自的childrenIds存储了他们各自item的子节点id。
展开
评论
下一页
个人成就
文章被阅读 405
掘力值 72
收藏集
0
关注标签
4
加入于