返回
Vue+ELement实现增删改查与表单验证,一步提升开发效率!
前端
2023-10-28 18:33:33
Vue+ELement 实现增删改查
简介
Vue.js 是一种流行的前端框架,以其简洁性和灵活性而著称。Element UI 是一个基于 Vue.js 的 UI 框架,提供了丰富的组件和样式,可帮助开发人员快速构建出美观、易用的界面。本文将指导您如何使用 Vue.js + Element UI 实现增删改查(CRUD)操作。
增删改查基本概念
增删改查是数据库操作的基本操作,包括:
- 增 (Create): 在数据库中插入新的数据。
- 删 (Delete): 从数据库中删除现有数据。
- 改 (Update): 修改数据库中现有数据。
- 查 (Retrieve): 从数据库中检索数据。
项目初始化
首先,创建一个 Vue.js 项目:
vue create project-name
然后,安装 Element UI:
npm install element-ui -S
引入 Element UI
在 main.js
文件中,引入 Element UI:
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
创建数据模型
我们需要一个数据模型来存储数据。可以使用 Vuex 来管理数据状态:
const store = new Vuex.Store({
state: {
tableData: []
},
mutations: {
setTableData(state, data) {
state.tableData = data
}
},
actions: {
getTableData(context) {
// 从服务器获取数据(根据实际情况修改)
const data = [{ id: 1, name: '张三', age: 20 }, { id: 2, name: '李四', age: 25 }]
context.commit('setTableData', data)
}
}
})
构建界面
在 App.vue
文件中,构建界面:
<template>
<div>
<el-table :data="tableData">
<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>
</div>
</template>
<script>
export default {
data() {
return {
tableData: []
}
},
mounted() {
this.$store.dispatch('getTableData')
}
}
</script>
实现增删改查
在 App.vue
文件中,实现增删改查操作:
<template>
<div>
<el-table :data="tableData">
<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 slot-scope="scope">
<el-button type="primary" @click="handleEdit(scope.row)">编辑</el-button>
<el-button type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="姓名">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年龄">
<el-input v-model="form.age"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleCreate">创建</el-button>
<el-button @click="handleReset">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
form: {
name: '',
age: ''
}
}
},
mounted() {
this.$store.dispatch('getTableData')
},
methods: {
handleCreate() {
// 从服务器创建数据(根据实际情况修改)
const data = { id: 3, name: this.form.name, age: this.form.age }
this.$store.dispatch('setTableData', [...this.tableData, data])
this.handleReset()
},
handleEdit(row) {
// 从服务器编辑数据(根据实际情况修改)
const data = { id: row.id, name: this.form.name, age: this.form.age }
this.$store.dispatch('setTableData', this.tableData.map(item => item.id === row.id ? data : item))
this.handleReset()
},
handleDelete(row) {
// 从服务器删除数据(根据实际情况修改)
this.$store.dispatch('setTableData', this.tableData.filter(item => item.id !== row.id))
},
handleReset() {
this.form = {
name: '',
age: ''
}
}
}
}
</script>
表单验证
使用 Element UI 的表单验证功能:
<template>
<div>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="姓名">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年龄">
<el-input v-model="form.age"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button @click="handleReset">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
age: ''
},
rules: {
name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' },
{ min: 2, max: 10, message: '姓名长度必须在2到10个字符之间', trigger: 'blur' }
],
age: [
{ required: true, message: '年龄不能为空', trigger: 'blur' },
{ type: 'number', message: '年龄必须为数字', trigger: 'blur' }
]
}
}
},
methods: {
handleSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
// 从服务器创建数据(根据实际情况修改)
const data = { id: 3, name: this.form.name, age: this.form.age }
this.$store.dispatch('setTableData', [...this.tableData, data])
this.handleReset()
}
})
},
handleReset() {
this.form = {
name: '',
age: ''
}
this.$refs.form.resetFields()
}
}
}
</script>
结论
通过使用 Vue.js + Element UI,我们可以轻松实现增删改查操作。这种方法提供了丰富的组件、美观的界面和灵活的验证功能,从而简化了前端开发流程。
常见问题解答
-
什么是增删改查操作?
增删改查是数据库操作的基本操作,包括插入、删除、修改和检索数据。 -
如何使用 Vuex 来管理数据状态?
Vuex 是一个状态管理库,可以帮助我们在 Vue.js 应用程序中管理数据状态。我们可以使用 Vuex 来存储和修改表格数据。 -
如何实现表单验证?
Element UI 提供了表单验证功能,我们可以通过定义验证规则和使用$refs.form.validate()
方法来实现表单验证。 -
如何从服务器获取和存储数据?
我们可以在 `actions