vue3 结合 element-plus 框架实现增删改查功能(不连接数据库)
一、效果图

二、代码
2.1、导入依赖(已经安装过node.js)
npm install element-plus --save
注意:要是安装失败,可以使用淘宝镜像进行下载,如下:
2.2、设置淘宝镜像源
由于 npm 原始源在国外,下载速度比较慢,所以最好切换为国内镜像源,这里选择 淘宝镜像源
2.2.1、安装nrm
首先我们来安装一下nrm,nrm能够管理npm源
npm install -g nrm --registry https://registry.npmmirror.com/
安装完 nrm 后,可以通过下面的命令来查看当前可用源
nrm ls
运行结果:

2.2.2、设置npm的镜像源
- 查看npm当前镜像源
npm config get registry
设置npm使用淘宝镜像源
npm config set registry https://registry.npmmirror.com/
- 查看结果

2.3、引入(main.ts文件)
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from './router'
createApp(App).use(ElementPlus).use(router).mount('#app')
2.4、使用(实现curd功能)
<template >
<h2>商品管理</h2>
<div id="big">
<!-- 导入element框架的表格 -->
<el-table :data="tableData" border style="width: 100%">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="id" label="商品编号" align="center" />
<el-table-column prop="name" label="名称" align="center" />
<el-table-column prop="price" label="价格" align="center" />
<el-table-column prop="LoadingDate" label="上货日期" align="center" />
<el-table-column prop="isSold" label="是否下架" align="center" #default="scope">
<input type="checkbox" v-model="scope.row.isSold">
</el-table-column>
<el-table-column label="操作" align="center" width="200" #default="scope">
<el-button type="danger" size="small" @click="del(scope.$index)">删除</el-button>
<el-button type="primary" size="small" @click="show(scope.$index,scope.row)">修改</el-button>
<el-button type="info" size="small">详情</el-button>
</el-table-column> </el-table>
</div> <!-- 模式窗口 -->
<fieldset>
<legend>商品详情</legend>
商品编号:<input type="text" placeholder="请输入商品编号" v-model="productInfo.id">
<br /><br />
商品名称:<input type="text" placeholder="请输入商品名称" v-model="productInfo.name">
<br /><br />
商品价格:<input type="number" placeholder="请输入商品价格" v-model="productInfo.price">
<br /><br />
上货日期:<input type="date" v-model="productInfo.LoadingDate">
<br /><br />
是否下架:<input type="radio" value="true" name="dates" v-model="productInfo.isSold"> 是
<input type="radio" value="false" name="dates" checked v-model="productInfo.isSold"> 否
<br /><br /> <el-button type="success" @click="add()">添加</el-button>
<el-button type="primary" @click="update()">修改</el-button>
<el-button type="danger">批量删除</el-button> </fieldset> </template>
<script lang="ts">
import { reactive } from 'vue'; export default {
setup() {
// 定义要渲染到页面的初始数据
const tableData = reactive([
{
id: "201300001",
name: '农夫山泉',
price: "1.2",
LoadingDate: "2013-01-07",
isSold: "true"
},
{
id: "201300002",
name: '百岁山',
price: "3.5",
LoadingDate: "2014-09-21",
isSold: "true"
},
{
id: "201300003",
name: '棒棒糖',
price: "1.5",
LoadingDate: "2015-02-01",
isSold: "false"
},
{
id: "201300004",
name: '冰激凌',
price: "8",
LoadingDate: "2019-06-13",
isSold: "true"
},
{
id: "201300005",
name: '蛋糕',
price: "66",
LoadingDate: "2021-11-12",
isSold: "false"
},
]); // 文本框双向绑定的值
const productInfo = reactive({ id: "", name: "", price: "", LoadingDate: "", isSold: "" }); // 删除功能,传索引行数
function del(index: number) {
// splice方法,传两个参数:第几行开始,删除多少条(如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素)
tableData.splice(index, 1)
} // 添加功能
function add() {
// 定义对象,存储从文本框获取到的数据
const addArray = {
id: productInfo.id,
name: productInfo.name,
price: productInfo.price,
LoadingDate: productInfo.LoadingDate,
isSold: productInfo.isSold,
}
// push方法,添加一条数据到初始数据的数组中
tableData.push(addArray);
} // 点击表格上的修改按钮,把该行信息显示到文本框里
// 传该行的下标(index)与该行(row)信息过来,渲染文本框
// 注意:要是index参数虽然在这里看似没有用上,但是不写index参数会不实现功能的!!!!
function show(index:number,row:any){
productInfo.id = row.id;
productInfo.name = row.name;
productInfo.price = row.price;
productInfo.LoadingDate = row.LoadingDate;
productInfo.isSold = row.isSold;
} // 修改功能
function update() {
// 也是一样的定义一个对象,用于存储文本框的数据
const updateArray = {
id: productInfo.id,
name: productInfo.name,
price: productInfo.price,
LoadingDate: productInfo.LoadingDate,
isSold: productInfo.isSold,
}
// 返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
// 大意就是:传入一个参数(id),让id与文本框里的id对比,找到两个id相同的哪个元素,保存
const index = tableData.findIndex(o => o.id === updateArray.id);
// 然后删掉index找到的那一条元素,先删,然后再添加文本框里面的数据到数组中
// splice方法的第三个参数是添加一条新元素到数组里
tableData.splice(index, 1, updateArray)
} // 暴露方法到页面上
return { tableData, del, productInfo,add,show,update }
}
}
</script>
<style scoped>
h2 {
text-align: center;
} #big {
width: 80%;
margin: auto;
} fieldset {
width: 40%;
margin-left: 10%;
margin-top: 30px;
}
</style>
vue3 结合 element-plus 框架实现增删改查功能(不连接数据库)的更多相关文章
- tp框架的增删改查
首先,我们来看一下tp框架里面的查询方法: 查询有很多种,代码如下: <?php namespace Admin\Controller; use Think\Controller; class ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Entity - 使用EF框架进行增删改查 - 模型先行
模型先行:先创建数据库实体模型,然后再进行数据库的增删改查. 基本步骤是不变的,可参照 <Entity - 使用EF框架进行增删改查 - 数据库先行> 其中的不同是,在创建数据库实体模型的 ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- BootstrapTable与KnockoutJS相结合实现增删改查功能
http://www.jb51.net/article/83910.htm KnockoutJS是一个JavaScript实现的MVVM框架.通过本文给大家介绍BootstrapTable与Knock ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!)
jQuery EasyUI/TopJUI实现数据表格的增删改查功能(不写js,纯HTML实现!!!) 废话不多说,直接贴上代码 <table id="configEdatagrid&q ...
- 【BootStrap】--具有增删改查功能的表格Demo
[BootStrap]--具有增删改查功能的表格Demo 目录(?)[+] 前言 版本一 样式 代码 版本二 样式 代码 版本三 样式 代码 总结 前言 bootstrap的表格样式,有类似EasyU ...
随机推荐
- 在 node 中使用 jquery ajax
对于前端同学来说,ajax 请求应该不会陌生.jquery 真的ajax请求做了封装,可以通过下面的方式发送一个请求并获取相应结果: $.ajax({ url: "https://echo. ...
- Typora多线程批量上传图片,永久免费25G图床
为了满足日常需求,就写了一个自动上传图片到图床的脚本 运行该程序可以做到自动完成图片上传,并自动替换为网络链接,支持多图同时上传,采用了多线程,上传速度提升很明显. 以Window系统为例,操作步骤: ...
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- 【读书笔记】C#高级编程 第二十四章 文件和注册表操作
(一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...
- Spring Boot 整合Hibernate Validator
Spring Boot 整合Hibernate Validator 依赖 <dependencies> <dependency> <groupId>org.spri ...
- 百度ueditor工具栏配置大全
toolbars: [[ 'source', // 源代码 'anchor', // 锚点 'undo', // 撤销 'redo', // 重做 'bold', // 加粗 'indent', // ...
- 采用docker方式安装ElastAlert,图形化配置告警规则----具体内容有删改,仅供查看
1.创建几个文件夹保存ElastAlert相关配置信息,用来挂载到容器中使用 2.编写核心配置,创建 ${ELASTALERT}/config/config.yaml用来存储核心配置: 3.Elast ...
- Beats:如何使用Winlogbeat
- Fluentd部署详解
Fluentd系统配置项 https://www.cnblogs.com/sanduzxcvbnm/p/13920972.html Fluentd自身日志 https://www.cnblogs.co ...
- PHP全栈开发(八):CSS Ⅲ background
设置背景颜色: div { background-color:#b0c4de; } 不仅可以给body标签设置背景颜色,还能给p,div,h标签设置背景颜色 设置背景图片: body { backgr ...