궁극적인 방법: PHP와 Vue를 사용하여 혁신적인 두뇌 매핑 기능 개발
소개:
정보 폭발 시대의 도래와 함께 사람들은 막대한 양의 정보를 보다 효율적으로 구성하고 처리해야 합니다. 마인드맵은 시각적 정보 정리 방법으로 마인드맵, 프로젝트 관리, 지식 정리 등의 분야에서 널리 활용되고 있다. PHP와 Vue를 사용하여 혁신적인 두뇌 매핑 기능을 개발하면 정보 구성 및 관리 효율성이 더욱 향상됩니다. 이 기사에서는 PHP와 Vue를 사용하여 간단하고 강력한 두뇌 매핑 기능을 구현하는 방법을 소개하고 해당 코드 예제를 첨부합니다.
먼저 노드 정보를 저장할 데이터베이스 테이블을 생성해야 합니다. 다음 SQL 문을 사용하여 간단한 노드 테이블을 만들 수 있습니다.
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;
그런 다음 PHP에서 제공하는 PDO 확장 라이브러리를 사용하여 데이터베이스에 연결하고 프런트엔드에서 호출할 해당 인터페이스 함수를 작성할 수 있습니다. 샘플 코드는 다음과 같습니다.
<?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(); }
먼저 Vue의 CDN 라이브러리를 소개하고 Vue 인스턴스를 생성해야 합니다. 그런 다음 Vue 인스턴스의 데이터에 노드 배열을 정의하여 서버에서 얻은 노드 데이터를 저장합니다. 동시에 노드 확장 및 추가를 처리하는 해당 메서드를 작성할 수 있습니다. 샘플 코드는 다음과 같습니다.
<!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>
위 내용은 궁극적인 방법: PHP와 Vue를 사용하여 혁신적인 마인드 매핑 기능 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!