大屏内容一般多且杂,根据设计图布局可分成左中右三栏或者左右两栏,Left, Center, Right 三个组件就是执行部门。
父组件 Index.vue 包含 左中右三栏。父组件作为“状态管理中心的“总指挥”
- 它不关心具体数据怎么画成图表或表格,那是“执行部门”的事。
- 核心任务是管理全局状态,也就是所有的筛选条件:年份、看板、法人、部门、甚至是从地图上点击的项目ID列表。
- 通过监听这些状态的变化,调度数据获取,并把最新的“作战指令”(即筛选条件)下发给所有“执行部门”。
Left, Center, Right 三个组件
- 它们非常“听话”,只接收从“总指挥”那里通过
props传来的筛选条件。 - 它们唯一的任务就是根据这些条件,去渲染自己负责的那一摊事(左边的列表、中间的图表、右边的饼图),不参与决策,只管执行
核心交互流程
- 开机初始化:页面加载时,“总指挥”先检查你的“身份”(
isCenterTernat),决定默认显示哪个看板,并加载好初始的法人列表和部门列表。 - 下达指令(用户操作):当你改变任何一个筛选条件时(比如切换年份、选择不同单位),这个“指令”就传给了“总指挥”。
- 联动响应:“总指挥”的
watch(监听器)就像他的秘书,一旦接到指令,会立刻启动一套标准化的连锁反应:- 重置:先把所有相关的下级选项清空(比如切换单位,就先把之前选的“法人”和“部门”清空,避免数据错乱)。
- 重新请求:根据新的指令,重新向后台请求最新的法人列表、部门列表。
- 刷新数据:最终,把所有筛选条件组合起来,重新请求最新的项目ID列表。
- 同步广播:“总指挥”把更新后的所有筛选条件,通过
props一次性广播给所有“执行部门”。 - 同步执行:三个子组件接收到新的“指令”后,立刻同步更新自己的界面,所有数据和图表保持完全一致。
这个逻辑的精髓在于状态的集中管理和清晰的向下传递,保证了整个系统无论怎么操作,数据源都是唯一的,展示也是同步的。
值得你学习借鉴的6大精髓
这份代码虽然长,但其设计思想非常规范,有很多值得你吸收并应用到其他项目中的最佳实践。
1. 【原则】父组件作为“状态管理中心”
这是整个架构的灵魂。将所有共享的、会影响全局的状态(筛选条件)都放在父组件中管理。这样做的好处是:
- 数据流向单一:所有子组件的数据来源只有一个,不会出现数据不一致的bug。
- 逻辑高度集中:所有关于“如何筛选”的逻辑都在父组件,便于维护和调试。查找问题只需去一个地方。
2. 【架构】清晰的“父-子”组件职责划分
父组件负责“决策”,子组件负责“展示”。这种划分让代码结构非常清晰。当你需要修改图表样式时,只需去 Center.vue;需要修改筛选逻辑时,只需去父组件。职责单一,互不干扰,这是大型项目能持续维护的关键。
3. 【技巧】熟练运用 watch 和 computed 实现响应式联动
这是代码中最具技术含量的部分,也是实现复杂交互的“万金油”。
watch用于处理“副作用”:当一个状态变化后,需要触发一系列动作时(如API请求、重置其他状态),watch是最佳工具。代码中watch(selectedBoard)的级联刷新逻辑是教科书级别的用法。computed用于“数据适配”:当需要根据现有状态计算出新的、适合传递给子组件的格式时,用computed。例如selectedOrgId1将数组格式转为字符串,selectCorpLabel将ID转为名称,这些小小的适配器让父子组件的接口变得更简洁、更健壮。
4. 【体验】基于角色的条件渲染 (v-if)
代码通过 v-if="isCenterTernat" 动态地显示不同的UI控件。这体现了以用户为中心的设计思维。根据用户权限和角色,提供最精简、最相关的操作界面,而不是把所有功能都堆出来,这是提升用户体验的重要细节。
5. 【实践】数据处理与转换的封装 (buildTree 函数)
后端返回的数据通常是扁平的列表,而前端UI组件(如树形选择器)需要嵌套的树形结构。buildTree 函数专门负责这个转换工作。
- 复用性:这个函数可以轻松复用到项目中任何需要构建树形结构的地方。
- 解耦:将数据转换逻辑从组件逻辑中抽离出来,让组件代码更纯粹,只关心展示。
6. 【细节】合理利用生命周期钩子
onBeforeMount:用于在DOM渲染前,根据用户的身份信息初始化关键状态(如selectedBoard),确保页面一显示就是正确的状态。onMounted:用于在DOM渲染后,发起首次数据请求。 这种按生命周期的顺序来安排初始化任务,是保证页面稳定、不出错的基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949902.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
[转] Promise静态方法汇总 (Promise.try)
作者:谢杰
该文章是并发异步操作系列文章第二篇。早期大家学习 Promise 的时候,都是从最基础的例子开始的,例如:
// 创建一个 Promise 实例
const myPromise = new Promise((resolve, reject) => {// 模拟异步任…
CT切片三维重建与STL导出MATLAB实现
读取CT切片、进行三维重建并将结果导出为STL文件格式。
function ct_to_stl_reconstruction(dicomDir, outputSTL, threshold, smoothingFactor)% CT切片三维重建与STL导出% 输入参数:% dicomDir - DICOM文件目录路径…
2025 年 LAPP 厂家最新推荐榜,技术实力与服务品质双重维度深度解析
引言
工业电缆作为生产系统的 “神经脉络”,其品质直接决定设备运行稳定性。LAPP 电缆凭借 lflex、unitronic 等核心系列产品的优异性能,成为工业自动化、石油化工等领域的优选。但市场中 37% 的供应商存在资质不全、…
基于第三方heleket api接入usdt支付
app上要接入usdt区块链支付 使用第三方通道heleket实现 heleket是国外网站,需要用魔法FQ. 官方文档地址 https://doc.heleket.com/methods/payments/qr-code-pay-form
测试页面<!doctype html>
<html>
&l…
2025年激光熔覆涂层制造厂权威推荐:熔覆激光/高速激光熔覆/激光熔覆源头厂家精选
激光熔覆涂层市场近年来保持稳定增长的态势。作为再制造工程的核心技术之一,激光熔覆在耐磨、防腐、耐高温等性能提升方面表现优异,广泛应用于煤炭、电力、冶金、工程机械等行业的关键部件修复与强化。
本次评选从企…
Legacy模式虚拟机,grub文件丢失如何处理
前面我们介绍了如何修复UEFI模式下CentOS虚拟机的grub引导,下面来介绍一下Legacy模式下CentOS虚拟机的grub引导如何修复,两者大致一样,但是有一些细微的区别。包括引导时所用的命令,以及grub文件所在的路径。
在gr…
2025年省电中央空调品牌权威推荐榜单:双出风中央空调/一拖四中央空调/智能中央空调品牌精选
在节能减排政策推动和能源成本上升的双重背景下,省电性能已成为中央空调选购的核心指标。根据行业数据显示,高效中央空调系统相比传统机型可实现30%-50%的运行能耗降低,这意味着大型商业场所年节电量可达数十万度,…
魔域电脑版下载安装教程:重返经典魔幻世界的完整攻略(含新手入门+登录异常修复)
本文详解《魔域》电脑版的下载与安装教程,覆盖新手入门指南、幻兽系统玩法解析、登录异常(0xc0000142)修复方法及版本对比。
关键词优化:魔域电脑版下载、魔域安装教程、魔域登录错误、魔域怀旧版、魔域游戏下载。
适…
学术会议会议合集 | 大数据、智慧医学 、数据管理 、计算机科学 、管理科学等EI会议合集
大数据、智慧医学 、数据管理 、计算机科学 、管理科学等EI会议合集2025年大数据与智慧医学国际学术会议(BDIMed 2025)
2025 International Conference on Big Data and Intelligent Medicine(BDIMed 2025)
重要信…
K8S使用开源CEPH作为后端StorageClass
1 引言
K8S在1.13版本开始支持使用Ceph作为StorageClass。其中云原生存储Rook和开源Ceph应用都非常广泛。本文主要介绍K8S如何对接开源Ceph使用RBD卷。
K8S对接Ceph的技术栈如下图所示。K8S主要通过容器存储接口CSI和C…
2025 年锅炉厂家最新推荐榜:智能控制与稳定可靠品牌综合测评结果及优质厂商名单电锅炉/蒸汽锅炉/燃气锅炉/燃油锅炉/电蒸汽锅炉公司推荐
引言
随着工业、商业及民生领域热能需求激增,锅炉设备的性能与品质愈发关键。为帮助企业精准筛选优质品牌,特种设备安全与节能协会联合行业权威机构开展 2025 年锅炉制造商综合测评,本次测评覆盖全国 120 余家主流厂…
Python自动化之Docx文档处理(二)
1 基本概念
1.1 python-docx-template模块
虽然前面提到的python-docx模块让我们能使用python代码写word,但正常情况下我们写word文档肯定都是直接使用office或wps之类的办公软件。更常用的需求是拿到一个word模板,用…
Python自动化之Docx文档处理(一)
1 基本概念
1.1 python-docx模块
相信大家在日常工作中,免不了要处理word文档,今天就介绍一个能通过python处理word文档的模块,python-docx[1]。
安装python-docx模块pip install python-docx然后通过官方的python代…
替换 Android APEX 下属动态库的方法
先确定要替换的库属于哪个 APEX 包,再替换库文件所属的整个 APEX 包。只单独替换 APEX 包下的库文件,会导致系统无法启动。Qidi Huang 2025.10.29
1. 确定要替换的库属于哪个 APEX 包
比如要替换 libaudioroute.so,…
配置管理工具-Confd
1 简介
1.1 Confd介绍
Confd是一个轻量级的配置管理工具。通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。对应的后端存储可以是etcd,redis、zookeeper等。[1]
通…
探索Go语言性能优化:全面解析pprof工具
摘自:https://baijiahao.baidu.com/s?id=1846491710332725792&wfr=spider&for=pc
go pprof作为Go语言性能优化的得力工具,其重要性不言而喻。然而,对于许多开发者来说,如何解读profile信息并有效利用ppro…
Bcache详解及踩坑记录
关注公众号 singless ,后台回复bcache,获取bcache相关资料1 介绍
1.1 背景介绍
Bcache是Linux内核块设备层的软件驱动,使用高速存储设备为传统机械磁盘做IO缓存,经常访问的热数据会缓存在固态硬盘中并直接返回给应…
HDD介质OSD新增SSD或NVME类型的DB或WAL分区
关注公众号singless,后台回复ceph可以获取文中相关脚本。
1 介绍
在ceph中,BlueStore使用RocksDB key-value数据库来管理内部元数据,比如从对象名称到磁盘上块位置的映射。一个对象的元数据在bluestore内称为Onode。…
什么是跨网域资源共享(CROS)
1 同源策略
浏览器的同源策略 - Web 安全 | MDNdeveloper.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
同源策略是一种重要的安全机制,它限制一个源加载的文档或脚本如何与另一个源的资源进行交互。同源…