大屏内容一般多且杂,根据设计图布局可分成左中右三栏或者左右两栏。
父组件 Index.vue 包含 左中右三栏。父组件作为“状态管理中心的“总指挥”
- 它不关心具体数据怎么画成图表或表格,那是“执行部门”的事。
- 核心任务是管理全局状态,也就是所有的筛选条件:年份、看板、法人、部门、甚至是从地图上点击的项目ID列表。
- 通过监听这些状态的变化,调度数据获取,并把最新的“作战指令”(即筛选条件)下发给所有“执行部门”。
Left, Center, Right 三个组件 ,三个组件就是执行部门。
- 它们非常“听话”,只接收从“总指挥”那里通过
props传来的筛选条件。 - 它们唯一的任务就是根据这些条件,去渲染自己负责的那一摊事(左边的列表、中间的图表、右边的饼图),不参与决策,只管执行
核心交互流程
- 开机初始化:页面加载时,“总指挥”先检查你的“身份”(
isCenterTernat),决定默认显示哪个看板,并加载好初始的法人列表和部门列表。 - 下达指令(用户操作):当你改变任何一个筛选条件时(比如切换年份、选择不同单位),这个“指令”就传给了“总指挥”。
- 联动响应:“总指挥”的
watch(监听器)就像他的秘书,一旦接到指令,会立刻启动一套标准化的连锁反应:- 重置:先把所有相关的下级选项清空(比如切换单位,就先把之前选的“法人”和“部门”清空,避免数据错乱)。
- 重新请求:根据新的指令,重新向后台请求最新的法人列表、部门列表。
- 刷新数据:最终,把所有筛选条件组合起来,重新请求最新的项目ID列表。
- 同步广播:“总指挥”把更新后的所有筛选条件,通过
props一次性广播给所有“执行部门”。 - 同步执行:三个子组件接收到新的“指令”后,立刻同步更新自己的界面,所有数据和图表保持完全一致。
这个逻辑的精髓在于状态的集中管理和清晰的向下传递,保证了整个系统无论怎么操作,数据源都是唯一的,展示也是同步的。
值得 借鉴的几点
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. 【细节】合理利用生命周期钩子
onBeforeMount:用于在DOM渲染前,根据用户的身份信息初始化关键状态(如selectedBoard),确保页面一显示就是正确的状态。onMounted:用于在DOM渲染后,发起首次数据请求。 这种按生命周期的顺序来安排初始化任务,是保证页面稳定、不出错的基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/956895.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
win7 系统完美运行. net 8 程序 所需依赖总结
经过数十次安装总结,基本上所有奇怪的情况都遇到了,最终总结出了下面的依赖清单,需要安装顺序从上到下依次安装。首先安装 [.net framwork 4.5.2],防止框架过老。安装下面的系统安全补丁更新系统的证书,防止在安装…
CONNECT 与 TLS 构建可治理边界
CONNECT 隧道机制
CONNECT 是 HTTP 协议中用于建立到目标主机与端口的隧道方法。客户端首先向出站节点发起 CONNECT 请求,指定目标域名与端口。隧道建立后,客户端与目标站点直接进行 TLS 握手,出站节点仅转发加密数…
2025年维修厂家推荐排行榜单:专业制冷服务引领行业
摘要
2025年维修厂家行业正迎来技术升级和服务多元化的高速发展期,尤其在制冷、螺杆机和冷库安装领域,高效节能和全生命周期服务成为核心趋势。本文基于行业数据和用户口碑,整理出2025年维修厂家推荐排行榜单,旨在…
2025 年度用友管理软件经销商最新推荐排行榜:权威测评 + 专业分析,精选优质服务商助力企业数字化转型制造业 / 建材行业管理软件代理商推荐
引言
在数字化转型浪潮下,企业对管理软件的需求持续攀升,用友管理软件因功能全面、适配性强成为主流选择。但市场上经销商服务质量参差不齐,为帮助企业精准选型,行业协会联合专业测评机构开展了 2025 年度用友管理…
2025年维修厂家口碑排行榜单:制冷行业技术创新与服务优势深度解析
摘要
随着制冷行业的快速发展,2025年维修厂家市场竞争日益激烈,用户对高效、可靠的制冷服务需求不断增长。本文基于行业数据、用户口碑和技术评测,推出维修厂家推荐排行榜单,旨在帮助用户选择优质服务提供商。榜单…
领先的安全可靠的数据分类分级厂商推荐
概要:随着《数据安全法》《个人信息保护法》以及《数据安全技术数据分类分级规则(2024版)》的实施,数据分类分级已从企业可选能力升级为合规运营的必备能力。在海量数据环境下,智能化的数据分类分级不仅能帮助企业…
2025年模块化甲板驳定制厂家权威推荐榜单:甲板驳船/甲板运输船/平板驳源头厂家精选
在海洋工程、港口物流及海上风电等领域,模块化甲板驳凭借其灵活的配置、高效的装载性能及强适应性,已成为重大设备运输与海上作业的关键装备。随着国内外海上风电、跨海桥梁等大型项目的持续推进,市场对定制化、大载…
CTF-show_Web方向(更新中)
萌新杯
web-14
过滤了括号以及分号
GET:?c=include$_POST[a]?> 、 POST:a=php://filter/read=convert.base64-encode/resource=config.php密码3
摩斯密码解密得到一个摩斯酷但培根更酷,
MMDDMDMDMMMDDDDMDD%u3MM…
6ES7 592-1BM00-0XB0
6ES7 592-1BM00-0XB0你提到的型号 6ES7 592-1BM00-0XB0 是西门子 SIMATIC S7 系列的模块,我们来完整解析一下👇🧩 一、型号分解项目含义6ES7
SIMATIC S7 系列产品(PLC 模块)592
通常为 通信接口模块 (Communica…
基于MATLAB的卫星导航解算系统实现
基于MATLAB的卫星导航解算系统实现(RINEX文件解析与伪距定位)一、系统架构设计
graph TD
A[读取RINEX文件] --> B{解析星历数据}
B --> C[计算卫星坐标]
C --> D[伪距测量解算]
D --> E[用户位置输出]二…
PhotoPrism
PhotoPrism
源文章连接地址
步骤2:
创建项目目录, 创建一个目录来存放 PhotoPrism 的配置文件和数据文件
cd ~/photoprism
cd ~/photoprism
步骤3:创建 Docker Compose 文件
创建一个 docker-compose.yml 文件
*** P…
改变已经创建了 Docker 容器名
如果已经创建了 Docker 容器,可使用以下方法改变其名称:
使用 docker rename 命令
这是最常用的方法,语法为 “docker rename < 旧容器名称或 ID> < 新容器名称 >”4。例如:
docker rename my_old_con…
C语言运维面试:四大核心概念解析 - 指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
GMP-MES之常用术语、流程及动作
根据 ISA-95 标准,制造作业管理可以细分为 4 个部分:生产作业管理、维修作业管理、质量作业管理、库存作业管理,这种划分用于定义制造实体的生产活动。ISA-95 标准由三部分组成,主要是针对企业控制系统各部分的集成…
Luogu P14379 【MX-S9-T2】「LAOI-16」摩天大楼 题解
SolutionLink
Broken Prob Description. 形式化题意如下:
维护一个长度为 \(n\) 的序列 \(a\),要求支持单点修改,每次修改后需要对所有区间 \([l, r]\) 计算 \(f(l, r)\) 之和,其中 \(1 \leq l \lt r \leq n\)。定…
251105B. 换来换去/card
251105B. 换来换去/card
计数将 \(n\) 个区分的物品划入任意个大小 \(\ge 2\) 的不区分集合的方案数。
\[n\le 10^7
\]
首先,这个问题看起来很像贝尔数:计数将 \(n\) 个区分的物品划入任意个不区分集合的方案数。这个…
2025年广东商用新风系统品牌推荐,广东中电深度解析
在工业通风与商用空气净化领域,产品的技术可靠性、静音性能与节能效率直接决定企业竞争力。面对市场上良莠不齐的新风设备品牌,如何选择兼具品质与口碑的供应商?以下依据技术实力、用户反馈与市场表现,为你推荐202…
docker加速器1Panel
系统介绍
1Panel-dev是一款现代化、开源的Linux服务器运维管理面板,为用户提供了一个功能全面、用户友好、安全可靠的Linux服务器运维管理解决方案。
安装教程
RedHat/CentOScurl -sSL https://resource.fit2cloud.co…
AI开发实践:如何通过案例学习快速上手项目开发
AI开发实践:如何通过案例学习快速上手项目开发在AI技术快速发展的当下,许多开发者面临着这样的困境:虽然对AI开发充满兴趣,但缺乏实际项目经验,不知从何入手。最近了解到的JBoltAI案例实践服务,或许为这个问题提…