如何构建逻辑清晰的可拖拽树的数据结构

  在为知笔记上的每日计划已经有好几天没有写实际内容了,抓狂脸。时间真是过得超级快呀,这几天双十一,疯狂的看喜欢的东西和看快递。其实并不是为了双十一降价而买东西,而是近来本来就有买东西的打算,而且撞到了双十一前,那就干脆放购物车里好了,还有就是半年没见降价的零食也打折啦啦啦~~^_^。好喜欢双十一结束后淘宝的宣传片《再见双十一》,接下来的这个星期,就静静的等待幸福来敲门~

  言归正传,今天来分享一下关于如何构建数据结构使得页面逻辑更为清晰的思路。

  事情的起因是这样的,boss安排我做一个列表拖拽页面,为了更贴切我们的UI和产品的需求,除了美化的滚动条使用jquery.nicescroll插件外,不到万不得已不允许用其他插件(来点题外话:感觉我们公司一般不允许用插件,用boss的话来说就是相信自己能写出来,根据项目写出来的才是最贴切最精炼的代码。不要一开始就使用插件,如果实在写不出来而使用插件,也得完全看懂代码或者使用说明,不要存在一知半解的侥幸心理,这样相当于给项目埋下定时炸弹)。

      我起初是用了对象加数组,各种全局变量加起来写着写着很容易把自己的代码写混了,然后把自己的困惑和boss说了之后,boss给我提供了一种新的思路,让我豁然开朗,立即把页面重写了一遍。好东西就是要和大家分享的,下面我来分享一下这个方法。

 

      如图所示,这个页面的要求是能实现以最左边一个虚拟的第0列作为根节点,然后点击三角形(非叶子节点的子节点)实现横向展开收缩数据。每一层都是上一层的子节点,在不同列的子节点中也可以相互拖拽,拖拽上一层节点,下一层节点也跟着移动(由于需要实现每一列都有一个相对的滚动条的功能,所以不能把所有节点都实现绘制在一棵树上通过show,hide展示。需要每展开一列就立即构建一个相对独立的树)。除了拖拽,还需要能实现复制节点(子节点也随之复制),删除,编辑,添加子节点,查看节点下所有叶子节点和本层叶子节点的功能。

  把这些功能归类,我们可以看到拖拽,删除其实是对结构的操作;编辑,查看是对数据的操作;复制,添加子节点这些既要求对树操作,要求对数据进行操作。

      当我们把页面的结构和渲染分开来的时候,页面的脉络会变得很清晰。

  我们可以就事论事把这抽象的数据想象成,并构建成一棵树,所有对树结构的修改都在树的操作上完成,而所有对于节点内容的修改,在另一组数据上完成,这样能使页面的结构更为清晰,而且也便于检查和维护,不会存在定义了一堆变量,到最后,自己都忘了这个变量是用来干嘛的。

     假设我们从后台获取到的数据是以数组的形式返回的,我们称这个数组为“原始数组”,“原始数组”中每一项代表一个节点的详细信息,那么具体操作可以分为以下步骤:

  1、构建树:创建一个“树”对象,把拿到的“原始数组”整理存入。“原始数组”每一项自动分配一个虚拟ID(从1开始,0作为最初的虚拟树根)作为键,键指向的值是一个至少包含 parentId(指向父节点),children数组(指向孩子节点,有顺序),nodeType(标示是或者不是叶子节点)的对象。

  2、构建卫星数据:创建一个“卫星数据”对象。以上一个步骤中的每一个虚拟ID为键,键指向的值是这个节点对应的所有详细真实的信息,如真实的ID,名字,内容,等等。

     这样我们想要对树的结构进行修改时,只需要修改“树”对象,而我们需要修改节点信息的时候,只需要修改“卫星数据”,这样可以大大减少代码量,并且能对整个页面结构一目了然。

转载于:https://www.cnblogs.com/zhangqiongyue/p/6067546.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Easydraw事故是一款功能强大的事故分析工具软件,可以帮助用户对事故发生的原因进行深入分析和探究。它提供了简单直观的图形界面和丰富的功能,使得用户能够轻松地创建、编辑和下载事故。 首先,Easydraw事故具有简单易用的特点。它的用户界面设计简洁明了,操作简单,即使对于没有专业背景的用户也能轻松上手。在软件中,用户可以通过简单的和点击来创建和编辑事故的节点和连接关系。这使得用户能够快速了解事故发生的主要因素和导致该事故发生的细节。 其次,Easydraw事故提供了丰富的功能。它可以支持多种类型的节点和连接关系,如事件节点、故障节点、逻辑关系等。用户可以根据实际情况进行灵活的组合和配置,以满足不同的分析需求。同时,Easydraw事故还能够自动生成全面、清晰的事故图形,使用户能够直观地了解事故发生的全貌和结构。 最后,Easydraw事故支持下载功能。用户可以将创建和编辑好的事故保存为本地文件,并以方便的方式进行下载。这样用户可以在离线环境下随时打开和查看事故,保证了数据的安全和备份。 总之,Easydraw事故是一款易于使用、功能强大且支持下载的事故分析工具软件。它能够帮助用户深入分析事故的原因,进行全面的事故建模,并将相应信息下载到本地进行备份和查看。无论是工程师、研究人员还是管理人员,都可以借助Easydraw事故轻松完成事故分析和风险控制任务。 ### 回答2: Easydraw 是一款功能强大的绘图软件,它为用户提供了创建事故的便捷工具。要下载 Easydraw 事故,可以按照以下步骤进行操作: 第一步,打开浏览器,输入 Easydraw 官方网站的网址。 第二步,进入官方网站后,在主页面上找到“下载”或者“软件下载”的选项,点击进入。 第三步,浏览官方网站的下载页面,寻找 Easydraw 事故软件的下载链接。 第四步,点击下载链接后,系统可能会提示您选择保存位置和文件名。根据个人喜好和需求,选择合适的位置和文件名,并点击“保存”按钮。 第五步,等待下载完成。具体时间会根据网速的快慢而有所不同。 第六步,下载完成后,在保存的位置找到下载好的 Easydraw 事故软件文件。双击打开该文件,按照提示进行安装。 第七步,在安装完成后,可以在电脑的桌面或者开始菜单中找到 Easydraw 事故的快捷方式。 通过以上步骤,您就可以成功下载并安装 Easydraw 事故软件。接下来,您可以根据软件的指引,开始使用 Easydraw 创建事故。 Easydraw 提供了丰富的绘图工具和模板,以便用户能够方便地制作出清晰、准确的事故。使用 Easydraw 可以帮助我们更好地分析和理解事故的成因和影响,以便采取相应的预防和控制措施,提高安全性。 ### 回答3: easydraw事故是一种绘制事故的软件工具,它可以帮助用户以直观、简单的方式绘制和分析事故。使用easydraw事故软件,用户可以根据不同的事件逐步构建和分析事故,从而更好地了解事故发生的原因和可能的后果。 下载easydraw事故软件非常简单。首先,在互联网上搜索easydraw事故官方网站,并进入该网站。在官方网站上,您可以找到有关easydraw事故软件的详细介绍、功能特点、操作手册等相关信息。接着,您可以点击“下载”按钮或类似的选项,选择适合您操作系统的版本,并开始下载软件。 下载过程可能需要一些时间,具体视您的网络环境而定。一旦下载完成,您可以在您的计算机或其他设备上找到安装文件。双击安装文件,按照提示完成软件的安装过程。 安装完成后,您可以在您的计算机上找到easydraw事故软件的图标。双击图标即可打开软件,并开始使用它来绘制事故。 总的来说,easydraw事故的下载过程相对简单,只需在官方网站上下载安装文件,然后按照提示完成安装即可。有了easydraw事故软件,您可以更方便、高效地进行事故的绘制和分析工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值