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

React Flow 中 Minimap 与 Controls 组件使用指南:交互式小地图与视口控制定制(含代码示例)

本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示​例与实战源)。完整介绍:https://blog.csdn.net/suiyingy/article/details/146983582。

        在 React Flow 中,Minimap(小地图)是一个非常实用的组件,它主要用于呈现流程图或图形的整体缩略视图。用户通过 Minimap可以快速了解整个图形的结构和布局,以及当前视口在整个图形中的位置。它将每个节点渲染为一个 SVG 元素,并且可以通过各种属性进行定制,如节点的颜色、边框半径、描边宽度等。默认情况下,Minimap 是非交互式的,但通过设置pannable和zoomable属性为true,可以让用户通过拖动或缩放 Minimap 来控制视口的位置和缩放比例,方便用户在处理复杂的大型图形时快速定位和导航。

        Controls(控件)则是 React Flow 提供的一组用于控制视口操作的组件。它通常包含缩放、居中和锁定视口等功能按钮。通过这些控件,用户可以方便地对图形进行缩放操作,以便更清晰地查看细节或整体布局;点击居中按钮可以将图形自动居中显示在视口中;而锁定视口功能则可以防止用户意外地拖动或缩放视口,确保图形的显示状态保持稳定。Controls 组件是可定制的,用户可以根据自己的需求和设计偏好来调整控件的样式和布局,以适应不同的应用场景。

        示例程序如下所示。

import React, { useCallback } from 'react';
import {ReactFlow,MiniMap,Controls,Background,useNodesState,useEdgesState,addEdge,BackgroundVariant,
} from 'reactflow';import 'reactflow/dist/style.css';
const initialNodes = [{ id: '1', position: { x: 0, y: 0 }, data: { label: '1' } },{ id: '2', position: { x: 0, y: 100 }, data: { label: '2' } },
];
const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];export default function App() {const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)),[setEdges],);return (<div style={{ height: '500px' }}><ReactFlownodes={nodes}edges={edges}onNodesChange={onNodesChange}onEdgesChange={onEdgesChange}onConnect={onConnect}fitView><Controls /><MiniMap nodeColor="#90caf9"                // 节点填充颜色nodeStrokeColor="#1e88e5"          // 节点边框颜色nodeBorderRadius={6}               // 节点圆角maskColor="rgba(144, 202, 249, 0.2)" // 视口遮罩颜色style={{backgroundColor: 'white',        // 背景色border: '1px solid #ccc',        // 边框样式borderRadius: '12px'             // 整体圆角}}nodeSize={12}                      // 节点尺寸/></ReactFlow></div>);
}

        运行程序后结果如下图所示。

图1 Minimap 与 Controls

   立即关注获取最新动态

点击订阅《React Agent 开发专栏》,每周获取智能体开发深度教程。项目代码持续更新至React Agent 开源仓库,欢迎 Star 获取实时更新通知!FGAI 人工智能平台:FGAI 人工智能平台

http://www.xdnf.cn/news/7219.html

相关文章:

  • 精益数据分析(68/126):数据透视表实战与解决方案验证——从问卷分析到产品落地的关键跨越
  • liunx定时任务,centos定时任务
  • eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点
  • 【氮化镓】偏置对GaN HEMT 单粒子效应的影响
  • [Java实战]Spring Boot整合Kafka:高吞吐量消息系统实战(二十七)
  • GStreamer (三)常⽤插件
  • 《AI革命重塑未来五年:医疗诊断精准度翻倍、自动驾驶事故锐减90%,全球科技版图加速变革》
  • 深入理解仿函数(Functors):从概念到实践
  • 如何提高嵌入式软件设计的代码质量
  • MATLAB中NLP工具箱支持聚类算法
  • Apidog MCP服务器,连接API规范和AI编码助手的桥梁
  • 设计模式-面试题
  • CVE-2015-2183 Zeuscart SQL注入漏洞
  • 留给王小川的时间不多了
  • 专题五:floodfill算法(扫雷游戏精讲)
  • 养生指南:重塑健康生活的实用方案
  • idea 安装飞算-javaAI 插件使用
  • FPGA:高速接口JESD204B以及FPGA实现
  • Scala语言基础与函数式编程详解
  • el-upload图片设置了url不显示问题
  • Python操作PDF书签详解 - 添加、修改、提取和删除
  • luckysheet的使用——17.将表格作为pdf下载到本地
  • MetaERP:开启企业数字化管理新时代
  • 【CF】Day62——Codeforces Round 948 (Div. 2) CD (思维 + LCM + 枚举因数 | 思维 + 哈希)
  • @DS多数据源注解失效
  • V4L2应用程序开发-01数据采集流程
  • docker运行Redis
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现Oracle数据库的监控与可视化
  • (cvpr2025) Frequency Dynamic Convolution for Dense Image Prediction
  • 软考 系统架构设计师系列知识点之杂项集萃(63)