React 思维导图应用概述 React 思维导图应用是一种基于 React 框架构建的工具,旨在帮助用户创建、可视化和组织思想、概念和信息。使用 React Flow 库,可以轻松实现交互式思维导图,支持节点的添加、连接和样式自定义。
以下是使用 React Flow 创建思维导图应用的基本步骤:
npm create vite@latest mind-mapping-app --template react
cd mind-mapping-app
npm install react-flow-renderer
src
目录下创建 node.jsx
文件,并添加以下代码:import React, { useState, useCallback } from "react";
import ReactFlow, { MiniMap, Controls, useNodesState, useEdgesState, addEdge } from "reactflow";
import "reactflow/dist/style.css";
const initialNodes = [
{
id: "1",
type: "input",
data: { label: "Mind Map" },
position: { x: 0, y: 0 },
},
];
const initialEdges = [];
export default function MindNode() {
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);
const [name, setName] = useState("");
const addNode = () => {
setNodes((e) =>
e.concat({
id: (e.length + 1).toString(),
data: { label: `${name}` },
position: {
x: Math.random() * window.innerWidth,
y: Math.random() * window.innerHeight,
},
})
);
};
const onConnect = useCallback(
(params) => setEdges((eds) => addEdge(params, eds)),
[setEdges]
);
return (
<div id="container">
<ReactFlow
nodes={nodes}
edges={edges}
onNodesChange={onNodesChange}
onEdgesChange={onEdgesChange}
onConnect={onConnect}
>
<Controls />
<MiniMap />
</ReactFlow>
<div>
<input
type="text"
onChange={(e) => setName(e.target.value)}
name="title"
/>
<button type="button" onClick={addNode}>
Add Node
</button>
</div>
</div>
);
}
App.jsx
中引入并渲染 MindNode
组件。通过以上步骤,您可以创建一个基本的 React 思维导图应用。可以根据需求进一步扩展功能,例如添加节点拖拽、节点编辑、样式自定义等,以提升用户体验和应用的实用性。