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

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 人工智能平台

相关文章:

  • ArcGIS Pro 3.4 二次开发 - 框架
  • 「HHT(希尔伯特黄变换)——ECG信号处理-第十三课」2025年5月19日
  • javascript 编程基础(2)javascript与Node.js
  • 关于VSCode按住Ctrl或Command点击鼠标左键不能跳转的问题
  • 2021-10-29 C++求位数及各位和
  • Canvas设计图片编辑器全讲解(一)Canvas基础(万字图文讲解)
  • 山东大学计算机图形学期末复习14——CG14下
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Progress Steps (步骤条)
  • redis的List为什么用ziplist和quicklist
  • GitHub 趋势日报 (2025年05月18日)
  • 学习记录:DAY29
  • 【HTML-1】HTML骨架标签:构建网页的基础框架
  • 百度OCR:证件识别
  • 【信息系统项目管理师】第10章:项目进度管理 - 48个经典题目及详解
  • 十三、面向对象底层逻辑-Dubbo序列化Serialization接口
  • React组件开发流程-03.1
  • 双指针算法:原理与应用详解
  • Notepad++ 学习(三)使用python插件编写脚本:实现跳转指定标签页(自主研发)
  • 龙芯中科2024年度业绩说明会:企稳向好,布局未来!
  • 抽奖相关功能测试思路
  • 4名中学生同服处方药后身体不适,一心堂一药店未凭处方售药被罚1万元
  • 总书记回信二周年之际,上海如何将垃圾分类深度融入城市发展?
  • 专访|金七猫奖得主:以非遗为舟,在现实题材中疗愈与成长
  • 取得金奖西瓜品种独家使用权的上海金山,为何要到异地“试种”?
  • 证监会披露两起操纵市场处罚结果,今年来涉操纵股票罚没金额超7.5亿元
  • 读懂城市|成都高新区:打造“人尽其才”的“理想之城”