如何透過Vue 和Element Plus 實現資料的增刪改查功能
概述:
Vue 是一套用於建立使用者介面的漸進式框架,它與Element Plus 這個基於Vue 2.x的UI 元件庫結合,可以幫助我們快速建立具備資料增刪改查功能的介面。本文將介紹如何利用Vue和Element Plus實現資料的增刪改查功能,並給出對應的程式碼範例。
首先,開啟命令列工具,並切換到專案目錄下。執行以下指令安裝Element Plus:
npm install element-plus --save
然後,在main.js 中引入Element Plus 的樣式和元件:
import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' createApp(App).use(ElementPlus).mount('#app')
在 src 目錄下建立 components 資料夾,並分別建立 List.vue 和 Form.vue 兩個檔案。
其中,List.vue 用來展示資料列表,包括表頭和資料行。 Form.vue 用於新增和編輯資料的表單。
List.vue 範例程式碼:
<template> <div> <el-table :data="data" border> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column label="操作"> <template #default="{row}"> <el-button type="text" @click="edit(row)">编辑</el-button> <el-button type="text" @click="del(row)">删除</el-button> </template> </el-table-column> </el-table> </div> </template> <script> export default { props: { data: { type: Array, default: () => [] } }, methods: { edit(row) { // 编辑逻辑 }, del(row) { // 删除逻辑 } } } </script>
Form.vue 範例程式碼:
<template> <div> <el-form ref="form" :model="form" :rules="rules"> <el-form-item label="姓名" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="年龄" prop="age"> <el-input v-model="form.age"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submit">提交</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data() { return { form: { name: '', age: '' }, rules: { name: [ { required: true, message: '请输入姓名', trigger: 'blur' } ], age: [ { required: true, message: '请输入年龄', trigger: 'blur' } ] } } }, methods: { submit() { // 提交逻辑 } } } </script>
<template> <div> <List :data="list" /> <Form /> </div> </template> <script> import List from './components/List.vue' import Form from './components/Form.vue' export default { data() { return { list: [ { id: 1, name: '张三', age: '20' }, { id: 2, name: '李四', age: '25' } ] } }, components: { List, Form } } </script>
在父元件中,我們傳入包含資料的 list 陣列到 List 元件的 data 屬性中,然後在 List 元件中透過 v-for 循環渲染資料清單。
edit(row) { // 编辑逻辑 this.editingData = { ...row } this.showForm = true }, del(row) { // 删除逻辑 const index = this.data.indexOf(row) this.data.splice(index, 1) }
在 Form 元件的 methods 中,我們可以實作新增和編輯資料的邏輯。具體實作方法如下:
submit() { // 提交逻辑 this.$refs.form.validate((valid) => { if (valid) { // 表单验证通过 if (this.editingData) { // 编辑数据 const index = this.data.findIndex(item => item.id === this.editingData.id) this.data.splice(index, 1, this.editingData) } else { // 新增数据 const id = Math.max(...this.data.map(item => item.id)) + 1 this.data.push({ ...this.form, id }) } this.resetForm() } else { // 表单验证未通过 return false } }) }, resetForm() { // 重置表单 this.editingData = null this.form = { name: '', age: '' } this.$refs.form.resetFields() }
以上程式碼範例示範如何透過 Vue 和 Element Plus 實作資料的增刪改查功能。透過 List 元件展示資料列表,並透過 Form 元件實作新增和編輯資料的表單。利用父子元件間的通信,我們可以實現資料的傳遞和更新,從而實現資料的增刪改查操作。
以上是如何透過vue和Element-plus實現資料的增刪改查功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!