Der ultimative Weg: Mit PHP und Vue innovative Brain-Mapping-Funktionen entwickeln
Einführung:
Mit dem Aufkommen der Informationsexplosion müssen Menschen riesige Informationsmengen effizienter organisieren und verarbeiten. Als visuelle Organisationsmethode für Informationen wird Mind Mapping häufig in Bereichen wie Mind Mapping, Projektmanagement und Wissensorganisation eingesetzt. Der Einsatz von PHP und Vue zur Entwicklung innovativer Brain-Mapping-Funktionen wird die Effizienz der Informationsorganisation und -verwaltung weiter verbessern. In diesem Artikel wird erläutert, wie Sie mit PHP und Vue eine einfache und leistungsstarke Brain-Mapping-Funktion implementieren und entsprechende Codebeispiele anhängen.
Zuerst müssen wir eine Datenbanktabelle erstellen, um Knoteninformationen zu speichern. Sie können die folgende SQL-Anweisung verwenden, um eine einfache Knotentabelle zu erstellen:
CREATE TABLE `nodes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `parent_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Anschließend können wir die von PHP bereitgestellte PDO-Erweiterungsbibliothek verwenden, um eine Verbindung zur Datenbank herzustellen und die entsprechende Schnittstellenfunktion zu schreiben, die das Front-End aufrufen soll. Der Beispielcode lautet wie folgt:
<?php $dbHost = 'localhost'; $dbName = 'your_database_name'; $dbUser = 'your_username'; $dbPass = 'your_password'; $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8mb4", $dbUser, $dbPass); function getNodes($parentId = null) { global $pdo; $query = $pdo->prepare("SELECT * FROM nodes WHERE parent_id = ?"); $query->execute([$parentId]); return $query->fetchAll(PDO::FETCH_ASSOC); } function addNode($title, $parent_id) { global $pdo; $query = $pdo->prepare("INSERT INTO nodes (title, parent_id) VALUES (?, ?)"); $query->execute([$title, $parent_id]); return $pdo->lastInsertId(); }
Zuerst müssen wir die CDN-Bibliothek von Vue vorstellen und eine Vue-Instanz erstellen. Definieren Sie dann ein Knotenarray in den Daten der Vue-Instanz, um die vom Server erhaltenen Knotendaten zu speichern. Gleichzeitig können wir entsprechende Methoden schreiben, um die Erweiterung und Hinzufügung von Knoten zu handhaben. Der Beispielcode lautet wie folgt:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Brainmap</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <ul> <li v-for="node in nodes" @click="toggleNode(node)"> {{ node.title }} <ul v-if="node.expanded"> <li v-for="child in getChildren(node.id)" @click.stop="toggleNode(child)"> {{ child.title }} </li> </ul> </li> </ul> <input type="text" v-model="newNodeTitle"> <button @click="addNode">Add</button> </div> <script> new Vue({ el: '#app', data: { nodes: [], newNodeTitle: '' }, mounted() { this.loadNodes(); }, methods: { loadNodes() { // 调用服务器端接口获取节点数据 axios.get('/api/getNodes.php') .then(response => { this.nodes = response.data; }) .catch(error => { console.error(error); }); }, getChildren(parentId) { return this.nodes.filter(node => node.parent_id === parentId); }, toggleNode(node) { node.expanded = !node.expanded; }, addNode() { const newNode = { title: this.newNodeTitle, parent_id: null, expanded: false }; // 调用服务器端接口添加节点 axios.post('/api/addNode.php', newNode) .then(response => { newNode.id = response.data; this.nodes.push(newNode); this.newNodeTitle = ''; }) .catch(error => { console.error(error); }); } } }); </script> </body> </html>
Das obige ist der detaillierte Inhalt vonDer ultimative Weg: Mit PHP und Vue innovative Mindmapping-Funktionen entwickeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!