Rumah > Artikel > pembangunan bahagian belakang > Membimbing negara: pengalaman amalan terbaik dalam membina fungsi peta otak dengan PHP dan Vue
Panduan kepada negara: Pengalaman amalan terbaik dalam membina fungsi peta otak dengan PHP dan Vue
Pengenalan:
Peta otak ialah organisasi maklumat dan alat pemikiran yang biasa digunakan, yang boleh membantu kita menjelaskan pemikiran dan menyusun maklumat dengan lebih baik. Dalam pembangunan web, kami boleh menggunakan rangka kerja PHP dan Vue untuk membina fungsi peta minda untuk memberikan pengguna pengalaman peta minda yang lebih baik. Artikel ini akan memperkenalkan cara menggunakan PHP dan Vue untuk membina fungsi pemetaan minda, dan berkongsi beberapa amalan terbaik.
-- 创建节点表 CREATE TABLE `nodes` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `parent_id` int(11) unsigned NOT NULL DEFAULT '0', `title` varchar(255) NOT NULL DEFAULT '', `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 创建节点关系表 CREATE TABLE `node_relations` ( `parent_id` int(11) unsigned NOT NULL, `child_id` int(11) unsigned NOT NULL, PRIMARY KEY (`parent_id`, `child_id`), FOREIGN KEY (`parent_id`) REFERENCES `nodes` (`id`) ON DELETE CASCADE, FOREIGN KEY (`child_id`) REFERENCES `nodes` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php namespace AppHttpControllers; use AppModelsNode; use IlluminateHttpRequest; class NodeController extends Controller { public function index() { $nodes = Node::with('children')->where('parent_id', 0)->get(); return response()->json($nodes); } }
Dalam kod di atas, kita mendapat nod akar (nod dengan parent_id
sebagai 0) melalui model Node, dan gunakan dengan kaedah ('kanak-kanak')
untuk pramuat data nod anak untuk mengurangkan bilangan pertanyaan berikutnya. parent_id
为0的节点),并使用with('children')
方法来预加载子节点数据,以减少后续查询次数。
<template> <div class="mindmap"> <ul> <li v-for="node in nodes" :key="node.id"> {{ node.title }} <Mindmap :nodes="node.children" v-if="node.children.length > 0" /> </li> </ul> </div> </template> <script> export default { name: 'Mindmap', props: ['nodes'], components: { Mindmap: () => import('./Mindmap.vue'), }, }; </script> <style> /* 样式省略 */ </style>
上述代码中,我们使用Vue的v-for
指令来遍历节点数据,并使用递归方式来展示节点的层级关系。当节点还有子节点时,我们通过动态组件来递归地渲染子节点。
<script> export default { name: 'MindmapApp', data() { return { nodes: [], }; }, mounted() { this.fetchNodes(); }, methods: { fetchNodes() { // 调用后端API接口获取脑图数据 axios.get('/api/nodes') .then((response) => { this.nodes = response.data; }) .catch((error) => { console.error(error); }); }, }, }; </script>
在上述代码中,我们使用axios
库来发起异步请求,调用后端API接口获取脑图数据,并将数据赋值给Vue实例的nodes
Gunakan rangka kerja Vue untuk membina antara muka bahagian hadapan dan melaksanakan fungsi interaktif peta otak. Berikut ialah contoh kod komponen Vue untuk memaparkan data peta minda:
v-for
Vue untuk melintasi data nod dan menggunakan rekursi untuk memaparkan hierarki nod perhubungan. Apabila nod mempunyai nod anak, kami memberikan nod anak secara rekursif melalui komponen dinamik. 🎜axios
untuk memulakan permintaan tak segerak, hubungi antara muka API bahagian belakang untuk mendapatkan peta otak data dan Berikan data kepada atribut nod
bagi tika Vue. 🎜🎜Ringkasan: 🎜Melalui kerjasama PHP dan Vue, kami boleh membina fungsi peta otak dengan mudah dan memberikan pengguna pengalaman peta otak yang lebih baik. Dalam projek sebenar, kami boleh meningkatkan lagi interaktiviti peta otak dengan menambah fungsi seperti menyunting nod dan menyeret nod. Saya berharap perkongsian artikel ini dapat memberi inspirasi kepada semua orang untuk membina fungsi peta otak Semua orang dialu-alukan untuk meneroka lebih banyak amalan dan pengalaman terbaik. 🎜Atas ialah kandungan terperinci Membimbing negara: pengalaman amalan terbaik dalam membina fungsi peta otak dengan PHP dan Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!