+
+ Current Count: {{ counter.count }}
+
+```
\ No newline at end of file
diff --git "a/\351\231\210\351\270\277\345\246\202/Vue\347\254\224\350\256\260/20240516\350\267\257\347\224\261.md" "b/\351\231\210\351\270\277\345\246\202/Vue\347\254\224\350\256\260/20240516\350\267\257\347\224\261.md"
new file mode 100644
index 0000000..316bfa4
--- /dev/null
+++ "b/\351\231\210\351\270\277\345\246\202/Vue\347\254\224\350\256\260/20240516\350\267\257\347\224\261.md"
@@ -0,0 +1,407 @@
+## 增删改查完整代码
+### 后端
+/back/app.js
+```js
+import Koa from 'koa';
+import Router from 'koa-router';
+import bodyParser from 'koa-bodyparser';
+import cors from 'koa2-cors';
+import { Op,DataTypes, Sequelize } from 'sequelize';
+
+const app = new Koa();
+const router = new Router();
+
+app.use(cors());
+app.use(bodyParser());
+
+let sequelize = new Sequelize('myData','sa','123456',{
+ host:'localhost',
+ dialect:"mssql"
+})
+
+const Blogs = sequelize.define('Blogs',{
+ Title:{type:DataTypes.STRING},
+ Author:{type:DataTypes.STRING},
+ Flag:{type:DataTypes.STRING}
+})
+await Blogs.sync();
+const blogsData=[
+ {
+ Title:"111",
+ Author:"111",
+ Flag:"11111"
+ },
+ {
+ Title:"222",
+ Author:"222",
+ Flag:"22222"
+ },
+ {
+ Title:"333",
+ Author:"3333",
+ Flag:"33333"
+ },
+ {
+ Title:"444",
+ Author:"555",
+ Flag:"44444"
+ },
+ {
+ Title:"555",
+ Author:"1155551",
+ Flag:"555555"
+ },
+ {
+ Title:"166611",
+ Author:"66666",
+ Flag:"6666666"
+ },
+]
+
+// Blogs.bulkCreate(blogsData).then(()=>{
+// console.log("初始数据插入成功");
+// })
+
+router.get('/blogs/:id?',async(ctx)=>{
+ let id = ctx.params.id || 0;
+ let keyword = ctx.request.query.keyword;
+ let data ;
+ if(id>0){
+ data = await Blogs.findByPk(id);
+ ctx.body = {
+ code:1000,
+ msg:"查找指定数据成功",
+ data:data
+ }
+ }else{
+ if(keyword){
+ let arr = await Blogs.findAll({
+ where:{
+ [Op.or]:[
+ {Title:{[Op.like]:`%${keyword}%`}},
+ {Author:{[Op.like]:`%${keyword}%`}},
+ {Flag:{[Op.like]:`%${keyword}%`}}
+ ]
+ }
+ });
+ ctx.body={
+ code:1000,
+ msg:"关键词查找成功",
+ data:arr
+ }
+ }else{
+ data = await Blogs.findAll();
+ ctx.body={
+ code:1000,
+ msg:"查找全部数据成功",
+ data:data
+ }
+ }
+ }
+})
+
+router.delete(`/blogs/:id`,async(ctx)=>{
+ let id = ctx.params.id;
+ let row = await Blogs.findByPk(id);
+ if(row){
+ Blogs.destroy({
+ where:{
+ id:id
+ }
+ })
+ ctx.body={
+ code:1000,
+ data:null,
+ msg:"删除成功"
+ }
+ }else{
+ ctx.body={
+ code:4000,
+ msg:"找不到",
+ data:null
+ }
+ }
+})
+
+router.post('/blogs',async(ctx)=>{
+ let obj = ctx.request.body;
+ console.log(obj);
+ let data = await Blogs.create(obj);
+ ctx.body={
+ code:1000,
+ data:data,
+ msg:"创建成功"
+ }
+});
+router.put('/blogs/:id',async (ctx)=>{
+ let id = ctx.params.id || 0;
+ let obj = ctx.request.body;
+ let item = await Blogs.findByPk(id);
+ if(item){
+ let data = await Blogs.update(obj,{
+ where:{
+ id:id
+ }
+ });
+ ctx.body={
+ code:1000,
+ data:data,
+ msg:"修改成功"
+ }
+ }else{
+ ctx.body={
+ code:4000,
+ msg:"修改失败"
+ }
+ }
+})
+app.use(router.routes());
+
+let port = 3000;
+app.listen(port);
+console.log(`http://localhost:${port}`);
+```
+
+### 前端
+/front/main.js
+```js
+import { createApp } from 'vue'
+import './style.css'
+import App from './App.vue'
+
+import Home from './components/Home.vue';
+import EditAndAdd from './components/EditAndAdd.vue';
+import {createRouter,createWebHistory} from 'vue-router'
+
+let router = createRouter({
+ history:createWebHistory(),
+ routes:[
+ {
+ path:'/',
+ component:Home
+ },{
+ path:'/editandadd',
+ component:EditAndAdd
+ }
+ ]
+})
+
+let app = createApp(App);
+app.use(router)
+app.mount('#app')
+
+```
+
+/front/App.vue
+```js
+