当前位置: 首页 > 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 人工智能平台

http://www.dtcms.com/a/200184.html

相关文章:

  • 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年度业绩说明会:企稳向好,布局未来!
  • 抽奖相关功能测试思路
  • NIFI的处理器:PutDatabaseRecord 2.4.0
  • 【数据仓库面试题合集③】实时数仓建模思路与实践详解
  • C++_AVL树
  • 从API到UI:直播美颜SDK中的滤镜与贴纸功能开发与落地方案详解
  • 打破传统仓库管理困局:WMS如何重构出入库全流程
  • 告别Spring AI!我的Java轻量AI框架实践(支持多模型接入|注解式MCP架构|附开源地址)
  • 【框架安装】win10 配置安装GPU加速的tensorflow和keras教程
  • 3D 数据交换格式(.3DXML)简介
  • 【esp32 控制台】-命令
  • Flink流处理:实时计算URL访问量TopN(基于时间窗口)