Rumah hujung hadapan web View.js Bagaimana untuk menggunakan Vue untuk melaksanakan jadual data boleh diedit?

Bagaimana untuk menggunakan Vue untuk melaksanakan jadual data boleh diedit?

Jun 25, 2023 pm 06:20 PM
vue jadual data Boleh diedit

Dengan pembangunan berterusan teknologi bahagian hadapan, jadual data telah menjadi salah satu alat penting untuk pengurusan perusahaan dan paparan data. Dalam pembangunan harian, kadangkala perlu mengubah suai atau menambah data dalam jadual data Pada masa ini, adalah perlu untuk melaksanakan jadual data boleh diedit. Artikel ini akan memperkenalkan cara menggunakan Vue untuk melaksanakan jadual data boleh diedit.

1. Idea perlaksanaan

Apabila melaksanakan fungsi jadual data boleh diedit, kita perlu mempertimbangkan perkara berikut:

  1. Pembentangan data: Menghasilkan data ke dalam jadual untuk paparan dan penyuntingan.
  2. Suntingan jadual: Edit data dalam jadual.
  3. Penyerahan data: Serahkan data yang diedit ke latar belakang atau lakukan operasi lain.

Berdasarkan idea di atas, kami boleh mencipta aplikasi yang mengandungi komponen jadual data melalui Vue untuk mencapai fungsi yang kami perlukan.

2. Persembahan data

Pertama sekali, dalam Vue kita perlu melaksanakan jadual data melalui komponen. Memandangkan kami menggunakan jadual data boleh diedit, elemen berkaitan seperti jadual, lajur data dan baris data perlu dibuat dalam komponen. Berikut ialah contoh asas struktur elemen komponen jadual data boleh diedit:

<template>
  <table>
    <thead>
      <tr>
        <th v-for="col in columns">{{col.title}}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(row, index) in rows" :key="index">
        <td v-for="col in columns">
          {{row[col.key]}}
        </td>
      </tr>
    </tbody>
  </table>
</template>
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan dua atribut penting: lajur dan rows. lajur digunakan untuk menentukan lajur dalam jadual, termasuk tajuk, nama kunci, dsb. baris digunakan untuk memaparkan data dalam baris data jadual. columnsrowscolumns 用于定义表格中的列,包括标题、键名等;rows 用于渲染表格数据行中的数据。

三、表格编辑

接下来,我们需要实现表格编辑功能。为了实现数据行可编辑,我们需要在组件中添加一个 editable 属性,用于标识当前数据行是否可编辑。当 editabletrue 时,表格数据行可进行编辑。下面是组件代码的更新版本:

<template>
  <table>
    <thead>
      <tr>
        <th v-for="col in columns">{{col.title}}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(row, index) in rows" :key="index" :class="{editable: row.editable}">
        <td v-for="col in columns">
          <template v-if="row.editable">
            <input v-model="row[col.key]">
          </template>
          <template v-else>{{row[col.key]}}</template>
        </td>
        <td>
          <button @click="editRow(index)">编辑</button>
          <button @click="saveRow(index)">保存</button>
        </td>
      </tr>
    </tbody>
  </table>
</template>
Salin selepas log masuk

上述代码中,我们添加了一个按钮,并通过 editRow()saveRow() 方法来控制数据行的编辑状态。当点击编辑按钮时,我们将行的 editable 属性设置为 true,表格进入编辑状态,此时会显示 input 标签用于编辑数据。当点击保存按钮后,我们将数据保存,保存完成后将行的 editable 属性设置为 false,退出编辑状态。

四、数据提交

在完成数据的编辑后,我们需要将数据提交到后台进行保存或者其他操作。这时,我们可以通过向组件添加一个 saveData()

3. Penyuntingan jadual

Seterusnya, kita perlu melaksanakan fungsi penyuntingan jadual. Untuk menjadikan baris data boleh diedit, kami perlu menambah atribut edit pada komponen untuk mengenal pasti sama ada baris data semasa boleh diedit. Apabila boleh diedit adalah true, baris data jadual boleh diedit. Berikut ialah versi kod komponen yang dikemas kini:

...省略前面代码...
methods: {
  editRow (index) {
    this.rows[index].editable = true
  },
  saveRow (index) {
    this.rows[index].editable = false
  },
  saveData () {
    // 提交数据到后台
    // ...
  }
}
Salin selepas log masuk

Dalam kod di atas, kami menambahkan butang dan mengawal baris data melalui editRow() dan saveRow() kaedah Edit status. Apabila butang edit diklik, kami menetapkan atribut edit baris kepada true, dan jadual memasuki keadaan edit, dan input tag dipaparkan untuk Edit data. Selepas mengklik butang simpan, kami menyimpan data Selepas penjimatan selesai, tetapkan atribut edit baris kepada false dan keluar dari keadaan penyuntingan.

4. Penyerahan Data

Selepas selesai menyunting data, kami perlu menyerahkan data ke latar belakang untuk menyimpan atau operasi lain. Pada masa ini, kita boleh mencapai ini dengan menambahkan kaedah saveData() pada komponen. Dalam kaedah ini, kami boleh menyerahkan data yang diedit ke latar belakang melalui permintaan Ajax. Struktur kod adalah seperti berikut: 🎜
<template>
  <table>
    <thead>
      <tr>
        <th v-for="col in columns">{{col.title}}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(row, index) in rows" :key="index" :class="{editable: row.editable}">
        <td v-for="col in columns">
          <template v-if="row.editable">
            <input v-model="row[col.key]">
          </template>
          <template v-else>{{row[col.key]}}</template>
        </td>
        <td>
          <button @click="editRow(index)">编辑</button>
          <button @click="saveRow(index)">保存</button>
        </td>
      </tr>
    </tbody>
  </table>
</template>

<script>
export default {
  props: {
    columns: {
      type: Array,
      required: true
    },
    rows: {
      type: Array,
      required: true
    }
  },
  methods: {
    editRow (index) {
      this.rows[index].editable = true
    },
    saveRow (index) {
      this.rows[index].editable = false
    },
    saveData () {
      // 提交数据到后台
      // ...
    }
  }
}
</script>
Salin selepas log masuk
🎜 5. Kod lengkap 🎜🎜Akhir sekali, kami menyepadukan semua kod di atas untuk membentuk komponen jadual data boleh edit lengkap. Kod lengkap adalah seperti berikut: 🎜rrreee🎜 6. Ringkasan 🎜🎜Artikel ini memperkenalkan cara menggunakan Vue untuk melaksanakan jadual data boleh diedit, dan merealisasikan tiga fungsi pembentangan data, penyuntingan jadual dan penyerahan data. Dalam penggunaan sebenar, kami boleh menambah baik lagi fungsi komponen dan mengoptimumkan prestasinya mengikut keperluan kami sendiri untuk lebih memenuhi keperluan sebenar. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Vue untuk melaksanakan jadual data boleh diedit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kaedah menukar rentetan vue.js ke dalam objek? Apakah kaedah menukar rentetan vue.js ke dalam objek? Apr 07, 2025 pm 09:18 PM

Menggunakan json.parse () rentetan ke objek adalah yang paling selamat dan paling efisien: pastikan rentetan mematuhi spesifikasi JSON dan mengelakkan kesilapan biasa. Gunakan cuba ... menangkap untuk mengendalikan pengecualian untuk meningkatkan keteguhan kod. Elakkan menggunakan kaedah eval (), yang mempunyai risiko keselamatan. Untuk rentetan JSON yang besar, parsing parsing atau parsing tak segerak boleh dipertimbangkan untuk mengoptimumkan prestasi.

Vue menyedari kesan menatal marquee/teks Vue menyedari kesan menatal marquee/teks Apr 07, 2025 pm 10:51 PM

Melaksanakan kesan menatal marquee/teks di VUE, menggunakan animasi CSS atau perpustakaan pihak ketiga. Artikel ini memperkenalkan cara menggunakan animasi CSS: Buat teks tatal dan bungkus teks dengan & lt; div & gt;. Tentukan animasi CSS dan tetapkan limpahan: tersembunyi, lebar, dan animasi. Tentukan frasa key, set Transform: TranslateX () pada permulaan dan akhir animasi. Laraskan sifat animasi seperti tempoh, kelajuan tatal, dan arah.

Cara menggunakan lalai eksport dan import di Vue Cara menggunakan lalai eksport dan import di Vue Apr 07, 2025 pm 07:09 PM

Lalai eksport digunakan untuk mengeksport komponen VUE dan membolehkan modul lain untuk mengakses. Import digunakan untuk mengimport komponen dari modul lain, yang boleh mengimport komponen tunggal atau berbilang.

Vue dan Element-UI Cascaded Drop-Down Box Props Nilai Pass Vue dan Element-UI Cascaded Drop-Down Box Props Nilai Pass Apr 07, 2025 pm 07:36 PM

Struktur data mesti ditakrifkan dengan jelas apabila kotak drop-down VUE dan Element-UI melepasi prop, dan tugasan langsung data statik disokong. Jika data diperoleh secara dinamik, adalah disyorkan untuk memberikan nilai dalam cangkuk kitaran hayat dan mengendalikan situasi tak segerak. Untuk struktur data yang tidak standard, lalai atau menukar format data perlu diubah suai. Pastikan kod mudah dan mudah difahami dengan nama dan komen yang bermakna. Untuk mengoptimumkan prestasi, tatal maya atau teknik pemuatan malas boleh digunakan.

Kaedah apa yang digunakan untuk menukar rentetan ke dalam objek dalam vue.js? Kaedah apa yang digunakan untuk menukar rentetan ke dalam objek dalam vue.js? Apr 07, 2025 pm 09:39 PM

Apabila menukar rentetan ke objek dalam vue.js, json.parse () lebih disukai untuk rentetan json standard. Untuk rentetan JSON yang tidak standard, rentetan boleh diproses dengan menggunakan ungkapan biasa dan mengurangkan kaedah mengikut format atau url yang dikodkan. Pilih kaedah yang sesuai mengikut format rentetan dan perhatikan isu keselamatan dan pengekodan untuk mengelakkan pepijat.

Adakah kaedah permintaan (mendapatkan, pos, dll) digunakan dengan betul? Adakah kaedah permintaan (mendapatkan, pos, dll) digunakan dengan betul? Apr 07, 2025 pm 10:09 PM

Penggunaan kaedah permintaan axios dalam vue.js memerlukan mengikuti prinsip -prinsip ini: Dapatkan: Dapatkan sumber, jangan mengubah suai data. Post: Buat atau serahkan data, tambah atau ubah suai data. Letakkan: Kemas kini atau ganti sumber sedia ada. Padam: Padam sumber dari pelayan.

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Cara Menggunakan Watch di Vue Cara Menggunakan Watch di Vue Apr 07, 2025 pm 11:36 PM

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

See all articles