Przejdź do głównej zawartości

35. Prosta mapa myśli

Prosta mapa myśli — centralny węzeł z gałęziami, dodawanie węzłów podrzędnych, edycja i usuwanie. Struktura drzewa.

// Rekurencyjna struktura węzłów
// { id, text, children: [{ id, text, children: [...] }] }
function MindMapNode({ node, onAdd, onEdit, onDelete, depth = 0 }) {
return (
<div className={`node depth-${depth}`}>
<div className="node-content">
<span>{node.text}</span>
<button onClick={() => onAdd(node.id)}>+</button>
<button onClick={() => onEdit(node.id)}></button>
{depth > 0 && <button onClick={() => onDelete(node.id)}></button>}
</div>
{node.children?.length > 0 && (
<div className="node-children">
{node.children.map((child) => (
<MindMapNode
key={child.id}
node={child}
onAdd={onAdd}
onEdit={onEdit}
onDelete={onDelete}
depth={depth + 1}
/>
))}
</div>
)}
</div>
);
}
  • Centralny węzeł z 2 poziomami zagnieżdżenia
  • Dodawanie węzłów podrzędnych
  • Edycja tekstu węzła (kliknięcie)
  • Usuwanie węzłów (z dziećmi)
  • Zapis w localStorage
Ocena: 3.0

Powodzenia!

Mapa myśli to projekt z rekurencją — komponenty renderujące siebie to elegancki wzorzec React. Modyfikacja zagnieżdżonego drzewa bez mutacji wymaga rekurencyjnych funkcji pomocniczych (np. addNode, deleteNode). To jest najtrudniejsza część — zaplanuj te funkcje zanim zaczniesz kodować widok!