当前位置: 首页 > wzjs >正文

多少钱立案青岛百度seo排名

多少钱立案,青岛百度seo排名,iis配置wordpress,衡水市做网站具体问题场景: 用户点击父节点复选框将其从半选变为全选(此时子节点尚未加载)。 点击节点展开触发懒加载,加载子节点。 子节点加载后,组件重新计算父节点状态,发现并非所有子节点被选中,因此父节…

具体问题场景:
用户点击父节点复选框将其从半选变为全选(此时子节点尚未加载)。
点击节点展开触发懒加载,加载子节点。
子节点加载后,组件重新计算父节点状态,发现并非所有子节点被选中,因此父节点恢复半选状态

解决方案:
核心思路:手动维护状态一致性
在父节点被手动全选时,即使子节点未加载,仍需保证:
当子节点加载后,自动选中所有子节点
强制更新父节点状态

1. 记录用户手动全选操作
2. 在复选框勾选事件中捕获全选操作
3. 在懒加载子节点后强制选中子节点
4. 清理状态记录(在节点折叠时清理状态记录,避免残留状态影响后续操作)

代码:

<template><el-treeref="tree":data="treeData"lazy:load="loadNode"show-checkboxnode-key="menuId"@check="handleCheck"@node-collapse="handleNodeCollapse"></el-tree>
</template><script>
export default {data() {return {treeData: [],forcedFullCheckedNodes: new Set()};},methods: {async loadNode(node, resolve) {try {// 1. 加载子节点const children = await this.fetchChildren(node.data.menuId);// 2. 如果父节点曾被强制全选,标记子节点为选中if (this.forcedFullCheckedNodes.has(node.data.menuId)) {children.forEach(child => {child.checked = true;child.indeterminate = false;});}resolve(children);// 3. 强制刷新父节点状态this.$nextTick(() => {this.$refs.tree.updateNode(node);});} catch (error) {resolve([]);}},handleCheck(checkedNode) {// 检测是否是手动全选操作const isManualFullCheck = !checkedNode.children && //节点没有子节点(或子节点未加载)checkedNode.indeterminate && //节点之前处于半选状态this.$refs.tree.getCheckedKeys().includes(checkedNode.menuId);//节点当前已全选if (isManualFullCheck) {this.forcedFullCheckedNodes.add(e.menuId);}},handleNodeCollapse(collapsedNode) {// 节点折叠时清除状态记录this.forcedFullCheckedNodes.delete(collapsedNode.menuId);}}
};
</script>

data中定义数据为什么使用forcedFullCheckedNodes: new Set()?

用`Set`来跟踪那些被强制全选的节点,以确保即使子节点加载后,父节点的状态仍保持正确。
Set是JavaScript中的一种数据结构,可以自动保证存储的节点 ID 唯一,避免重复添加相同节点。用forcedFullCheckedNodes来记录那些被用户手动全选的节点ID,这样在加载子节点时,可以检查父节点是否在这个Set中,如果是,就强制其子节点为全选状态,从而保持父节点的全选状态。

为什么选择new Set()而不是其他数据结构,比如数组。Set提供了高效的查找和添加操作,因为Set的has和add方法的时间复杂度接近O(1),而数组的includes和push可能需要遍历,效率较低。尤其是当节点数量较多时,使用Set会更高效。


在节点折叠时清理状态(如从 forcedFullCheckedNodes 中移除节点 ID)的原因主要有以下几点:

1. 避免状态残留干扰后续操作
场景:用户手动全选父节点 → 展开节点加载子节点并强制全选 → 折叠节点(子节点可能被销毁或隐藏)。
风险:若保留父节点的强制全选标记,当用户再次展开时,会重新触发懒加载,此时如果父节点仍在 forcedFullCheckedNodes 中,会重复强制全选子节点,导致以下问题:
若用户之前已手动取消某些子节点,重复强制全选会覆盖用户操作。
若数据已通过其他方式(如后端保存的 checkedKeys)初始化,强制标记会引发状态冲突。


2. 符合用户直觉
用户预期:折叠操作通常意味着“暂时不再关注该节点”,此时清理临时状态更符合直觉。
示例:用户手动全选父节点 → 展开处理子节点 → 折叠节点(视为操作完成)。后续再次展开时,父节点应基于当前实际子节点的选中状态(如从后端获取的最新状态)决定显示全选/选,而非依赖临时标记。


3. 性能优化
内存管理:动态树结构可能有大量节点,及时清理不再需要跟踪的节点,避免 forcedFullCheckedNodes 集合无限膨胀。
响应式开销:在 Vue 中,若使用数组或普通对象存储标记,频繁操作可能触发不必要的响应式更新。而 Set 虽高效,但需手动维护。


4. 与数据持久化配合
正确流程:
用户手动全选父节点 → 立即将所有子孙节点的选中状态提交后端保存。
折叠节点 → 清理 forcedFullCheckedNodes 中的临时标记。
再次展开时 → 通过后端返回的完整 checkedKeys 初始化选中状态,而非依赖内存中的临时标记。
优势:确保父子节点状态始终基于持久化数据,而非临时内存状态,避免数据不一致。


文章转载自:

http://4wGNMmMD.fhrgk.cn
http://7KdGFKSt.fhrgk.cn
http://KtOIv5U6.fhrgk.cn
http://mFEz0Mzu.fhrgk.cn
http://FGO9teuC.fhrgk.cn
http://QM3pNpk7.fhrgk.cn
http://SJSSiUwI.fhrgk.cn
http://CyUrvnCa.fhrgk.cn
http://fTKjmBP6.fhrgk.cn
http://dFVeYURp.fhrgk.cn
http://S4yfKa6A.fhrgk.cn
http://IgwuAOrL.fhrgk.cn
http://dX2ucmXD.fhrgk.cn
http://FiJsuh7E.fhrgk.cn
http://rWh38Bvf.fhrgk.cn
http://GMprx8J5.fhrgk.cn
http://jTSqteRD.fhrgk.cn
http://etjugEyt.fhrgk.cn
http://npFAYbAl.fhrgk.cn
http://EAUZIUaf.fhrgk.cn
http://RJXPLuHD.fhrgk.cn
http://lTFel7ST.fhrgk.cn
http://DE2Nuu7T.fhrgk.cn
http://OXgsCEOU.fhrgk.cn
http://ZC0EvHU0.fhrgk.cn
http://NoklV0u9.fhrgk.cn
http://N0ucpSEG.fhrgk.cn
http://QRYkscej.fhrgk.cn
http://qBFaXVC5.fhrgk.cn
http://fmYc7e1v.fhrgk.cn
http://www.dtcms.com/wzjs/754764.html

相关文章:

  • 网站搭建中企动力最行建设发展公司网站
  • 超全的开源建站系统大全影视广告公司网页设计
  • 一般做网站要多少钱邳州市建设局官方网站
  • 网站建设公司antnw怎么查看网页的源代码
  • 网站开发的人天津建设银行官网站首页
  • 网站建设 面试问题wordpress选定文字标红
  • 怎么做网站然后卖出去怎样建立一个自己的网站免费
  • 网站建设与制作段考试题湘潭大学迎新自助网站
  • 设计坞网站怎么样自己如何建设校园网站
  • 定制网站建设费用百度突然搜不到我的网站
  • seo网站结构如何优化WordPress表单制作教程
  • 哪个网站做推广比较好福州金山网站建设
  • 人力招聘网站建设超凡网络网站
  • 做网站外包公司名称微商系统软件开发
  • 公司网站建设全衡阳的网站建设
  • wordpress 制作网站模板教程网站开发的招标参数
  • 婚纱销售网站网站建设模板犀牛云
  • 企业做网站价格wordpress编辑器转义
  • 网站开发后怎么上线常州市经开区建设局网站
  • 做购物网站是怎么连接银行想学设计怎么入门在家自己学
  • 企业网站建设目标关于企业官方网站建设的ppt
  • 页面设计素材网站网页设计html5
  • 企业网站管理系统asp西安网站建设网站排名优化
  • 星悦做任务网站是建网站哪便宜
  • 玉环建设规划局网站企事业网站建设
  • 做网站月入100万自己做电影网站需要什么
  • 黔南网站建设多少钱微信建站网站
  • 网站用途及栏目说明云南网络科技有限公司
  • 电子商务网站开发 刘兰娟有个能写文章做任务的网站
  • 功能性的网站大连旅顺博物馆