Membina aplikasi pemetaan minda yang fleksibel: perlanggaran PHP dan Vue

WBOY
Lepaskan: 2023-08-25 17:46:01
asal
897 orang telah melayarinya

Membina aplikasi pemetaan minda yang fleksibel: perlanggaran PHP dan Vue

Membina aplikasi pemetaan minda yang fleksibel dan serba boleh: pertembungan PHP dan Vue

Pemetaan otak ialah peta minda grafik yang digunakan untuk membantu kita menyusun dan mempersembahkan struktur pemikiran yang kompleks. Dalam era ledakan maklumat hari ini, aplikasi pemetaan otak yang cekap telah menjadi alat penting untuk kita memproses sejumlah besar maklumat. Artikel ini akan memperkenalkan cara menggunakan PHP dan Vue untuk membina aplikasi pemetaan minda yang fleksibel dan boleh diubah.

1. Pengenalan

Aplikasi pemetaan otak terutamanya terdiri daripada dua bahagian: bahagian belakang dan bahagian hadapan. Bahagian belakang bertanggungjawab untuk mengendalikan penyimpanan dan pengurusan data, dan bahagian hadapan bertanggungjawab untuk pembentangan dan interaksi pengguna. Sebagai bahasa skrip bahagian pelayan, PHP sangat sesuai untuk mengendalikan logik belakang. Vue ialah rangka kerja JavaScript popular yang membolehkan interaksi bahagian hadapan dan pengikatan data. Menggabungkan fungsi berkuasa PHP dan Vue, kami boleh membina aplikasi pemetaan minda yang kaya dengan ciri, fleksibel dan serba boleh.

2. Pembangunan bahagian belakang

Pertama, kita perlu mencipta pangkalan data untuk menyimpan data peta otak. Katakan kita mempunyai dua jadual, satu ialah jadual nod (nod), digunakan untuk menyimpan maklumat tentang setiap nod; satu lagi ialah jadual hubungan (relation), digunakan untuk menyimpan hubungan antara nod. Berikut ialah pernyataan SQL untuk mencipta jadual nod dan jadual hubungan:

CREATE TABLE `node` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `parent_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE `relation` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `from_id` int(11) NOT NULL,
  `to_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Salin selepas log masuk

Seterusnya, kami menggunakan PHP untuk melaksanakan logik bahagian belakang. Pertama, kita perlu menyambung ke pangkalan data, yang boleh dilakukan menggunakan kelas operasi pangkalan data seperti PDO atau mysqli. Berikut ialah contoh kod untuk menggunakan PDO untuk menyambung ke pangkalan data:

<?php
  $dsn = 'mysql:host=localhost;dbname=your_database;charset=utf8';
  $username = 'your_username';
  $password = 'your_password';

  try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  } catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
  }
?>
Salin selepas log masuk

Kemudian, kita boleh menulis beberapa fungsi PHP untuk mengendalikan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan nod dan perhubungan. Berikut adalah beberapa contoh fungsi yang biasa digunakan:

<?php
  // 获取所有节点
  function getNodes($pdo) {
    $stmt = $pdo->query('SELECT * FROM `node`');
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
  }

  // 创建一个节点
  function createNode($pdo, $title, $parentId) {
    $stmt = $pdo->prepare('INSERT INTO `node` (`title`, `parent_id`) VALUES (?, ?)');
    $stmt->execute([$title, $parentId]);
    return $pdo->lastInsertId();
  }

  // 更新节点的标题
  function updateNode($pdo, $id, $title) {
    $stmt = $pdo->prepare('UPDATE `node` SET `title` = ? WHERE `id` = ?');
    $stmt->execute([$title, $id]);
    return $stmt->rowCount();
  }

  // 删除一个节点及其所有子节点
  function deleteNode($pdo, $id) {
    // 先删除子节点
    $stmt = $pdo->prepare('DELETE FROM `node` WHERE `parent_id` = ?');
    $stmt->execute([$id]);

    // 再删除自己
    $stmt = $pdo->prepare('DELETE FROM `node` WHERE `id` = ?');
    $stmt->execute([$id]);

    return $stmt->rowCount();
  }
?>
Salin selepas log masuk

3. Pembangunan bahagian hadapan

Di bahagian hadapan, kami akan menggunakan Vue untuk merealisasikan paparan dan interaksi peta otak. Pertama, kita perlu memperkenalkan Vue dan fail perpustakaan lain yang diperlukan. Fail ini boleh dibawa masuk menggunakan pemasangan CDN atau npm. Berikut ialah contoh kod yang memperkenalkan Vue dan fail perpustakaan lain:

<!DOCTYPE html>
<html>
<head>
  <title>脑图应用</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
  <div id="app">
    <!-- 这里是脑图的展示区域 -->
  </div>
</body>
</html>
Salin selepas log masuk

Kemudian, kita boleh menulis komponen Vue untuk merealisasikan paparan dan interaksi peta otak. Berikut adalah contoh mudah komponen peta otak:

<script>
  Vue.component('mind-map', {
    data() {
      return {
        nodes: [] // 用于存储节点数据
      };
    },
    mounted() {
      // 获取节点数据
      axios.get('/api/nodes')
        .then(response => {
          this.nodes = response.data;
        })
        .catch(error => {
          console.error(error);
        });
    },
    methods: {
      createNode(title, parentId) {
        // 创建新节点
        axios.post('/api/nodes', {
          title: title,
          parentId: parentId
        })
          .then(response => {
            // 添加到节点列表中
            this.nodes.push(response.data);
          })
          .catch(error => {
            console.error(error);
          });
      },
      updateNode(node) {
        // 更新节点标题
        axios.put(`/api/nodes/${node.id}`, {
          title: node.title
        })
          .then(response => {
            console.log(response.data);
          })
          .catch(error => {
            console.error(error);
          });
      },
      deleteNode(node) {
        // 删除节点
        axios.delete(`/api/nodes/${node.id}`)
          .then(response => {
            // 从节点列表中移除
            this.nodes.splice(this.nodes.indexOf(node), 1);
          })
          .catch(error => {
            console.error(error);
          });
      }
    },
    template: `
      <div>
        <ul>
          <li v-for="node in nodes" :key="node.id">
            <input type="text" v-model="node.title" @blur="updateNode(node)">
            <button @click="createNode(node.title, node.id)">添加子节点</button>
            <button @click="deleteNode(node)">删除节点</button>
          </li>
        </ul>
      </div>
    `
  });

  // 创建Vue实例
  new Vue({
    el: '#app'
  });
</script>
Salin selepas log masuk

4. Jalankan aplikasi

Akhirnya, kita boleh menjalankan aplikasi untuk melihat kesannya. Mula-mula, anda perlu menggunakan kod hujung belakang ke pelayan dan kemudian buka fail hujung hadapan dalam penyemak imbas. Jika semuanya baik-baik saja, anda boleh melihat aplikasi peta minda yang mudah. Anda boleh menambah, mengedit dan memadam nod, dan perubahannya akan ditunjukkan dalam peta minda dalam masa nyata.

Ringkasnya, melalui pertembungan PHP dan Vue, kami boleh membina aplikasi pemetaan minda yang fleksibel dan boleh diubah. PHP bertanggungjawab untuk pemprosesan bahagian belakang dan menyimpan data dalam pangkalan data manakala Vue bertanggungjawab untuk paparan dan interaksi bahagian hadapan, mencapai interaksi segera dengan pengguna. Saya harap kod contoh dalam artikel ini dapat membantu anda membina aplikasi pemetaan minda yang cekap dan menyusun maklumat dengan lebih baik dan mengurus pemikiran.

Atas ialah kandungan terperinci Membina aplikasi pemetaan minda yang fleksibel: perlanggaran PHP dan Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!