Mock数据实现增删改查

mock的增删改查

demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div>
       <h2>看你这波13装的,给你82分,多了怕你骄傲,剩下的给你来个666.</h2>
        <div>
            <button id="delet">删除</button><hr />
            <ul id="deleteData"></ul>
            <button id="add">增加</button><hr />
            <ul id="addData"></ul>
            <button id="change">修改</button><hr />
            <ul id="changeData"></ul>
            <button id="finds">查找</button>
            <ul id="findsData"></ul>
        </div>
    </div>
</body>
<script src="Mock.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>

var arr=[
    {name:'fei',age:20,id:1},
    {name:'liang',age:30,id:2},
    {name:'jun',age:40,id:3},
    {name:'ming',age:50,id:4}
]

/*参数处理*/
function parseQueryStr(queryStr){
      let queryData={};
      
    console.log("queryStr==",queryStr)
 
    let queryStrList = queryStr.split('&');//去除所有的&连接符
        console.log(queryStrList); 
  
  for( let [index,queryStr] of queryStrList.entries() ){
        let itemList = queryStr.split('=');
        queryData[itemList[0]] = decodeURIComponent(itemList[1]);
    } 
return queryData
}
/*模拟删除数据的方式*/
Mock.mock('http://www.bai.com/delet','delete',function(options){
    console.log(options.body.params)
    const datas= parseQueryStr(options.body);
    var id = datas.id;
    var name=datas.name;
    var index;
    for(var i in arr){
        if(arr[i].id==id || arr[i].name===name){//在数组arr里找到这个id
            console.log(i)
            index=i;
            arr.splice(index,1)//把这个id对应的对象从数组里删除
        }
    }
    const data= {
        data:arr,
        status:1,
        message:"删除成功!"
    }
    return data;//返回这个数组,也就是返回处理后的假数据
})

/*模拟添加数据的方式*/
Mock.mock("http://www.bai.com/add",'post',function(options){
    console.log(options.body)
    const datas= parseQueryStr(options.body);
    console.log(datas)
    var id = datas.id;
    var ishave=true;
    for(var i in arr){
        if(arr[i].id==id){//在数组arr里找到这个id
            ishave=!ishave;
          }  
    }
    arr.push(datas);
         data={
            data:ishave?arr:null,
            status:1,
            message:ishave?"添加成功!":"数据已存在"
    }
    return data
})
/*模拟查找数据的方式*/
Mock.mock("http://www.bai.com/finds",'post',function(options){
    console.log(options.body)
    const datas= parseQueryStr(options.body);
    console.log(datas)
    var id = datas.id;
    var item={};
    for(var i in arr){
        if(arr[i].id==id){//在数组arr里找到这个id
            item=arr[i];
          }  
    }
         data={
            data:item,
            status:1,
            message:"搜索成功!"
    }
    return data
})
/*模拟修改数据方式*/
Mock.mock("http://www.bai.com/change",'post',function(options){
    console.log(options.body)
    const datas= parseQueryStr(options.body);
    console.log(datas)
    var id = datas.id;
   
    for(var i in arr){
        if(arr[i].id==id){//在数组arr里找到这个id
            arr[i]=datas;
          }  
    }
         data={
            data:arr,
            status:1,
            message:"修改成功!"
    }
    return data
})
/*删除*/
$("#delet").on('click',function(){
    $.ajax({
        url:'http://www.bai.com/delet',
        type:"DELETE",
        data:{
            id:1,//假设需要删除id=1的数据
            name:'jun'
        },
        dataType:'json',
        success:function(e){
            var lilist = "";
            if (e.status===1) {
                alert(e.message)
                e.data.map(item=>{
                    lilist+='<li id='+item.id+'><span>序号'+item.id+'</span>&nbsp;&nbsp;&nbsp;<span><span>姓名:'+item.name+'</span>&nbsp;&nbsp;&nbsp;<span>年龄:'+item.age+'</span></li>';
                })
                $("#deleteData").append(lilist)
            } 
            console.log(e.data)
        }
    })
})
/*添加*/
$("#add").on('click',function(){
    $.ajax({
        url:'http://www.bai.com/add',
        type:"POST",
        data:{
            id:parseInt(Math.random()*100),//假设需要删除id=1的数据
            name:'张金宝',
            age:33+parseInt(Math.random()*100)
        },
        dataType:'json',
        success:function(e){
            var lilist="";
            if (e.status===1) {
                alert(e.message)
                e.data.map(item=>{
                    lilist+='<li id='+item.id+'><span>序号'+item.id+'</span>&nbsp;&nbsp;&nbsp;<span><span>姓名:'+item.name+'</span>&nbsp;&nbsp;&nbsp;<span>年龄:'+item.age+'</span></li>';
                })
                $("#addData").append(lilist)
            } 
            console.log(e.data)
        }
    })
})
/*查询数据*/
$("#finds").on('click',function(){
    $.ajax({
        url:'http://www.bai.com/finds',
        type:"POST",
        data:{
            id:1,//假设需要删除id=1的数据
        },
        dataType:'json',
        success:function(e){
            var lilist="";
            if (e.status===1) {
                alert(e.message)
                var item =e.data;
                    lilist='<li id='+item.id+'><span>序号'+item.id+'</span>&nbsp;&nbsp;&nbsp;<span><span>姓名:'+item.name+'</span>&nbsp;&nbsp;&nbsp;<span>年龄:'+item.age+'</span></li>';
                $("#findsData").append(lilist)
            } 
            console.log(e.data)
        }
    })
})

/*修改数据*/
$("#change").on('click',function(){
    $.ajax({
        url:'http://www.bai.com/change',
        type:"POST",
        data:{ 
            name:'张金宝',
            age:33+parseInt(Math.random()*10),
            id:1,//假设需要删除id=1的数据
           
        },
        dataType:'json',
        success:function(e){
            var lilist="";
            if (e.status===1) {
                alert(e.message)
                e.data.map(item=>{
                    lilist+='<li id='+item.id+'><span>序号'+item.id+'</span>&nbsp;&nbsp;&nbsp;<span><span>姓名:'+item.name+'</span>&nbsp;&nbsp;&nbsp;<span>年龄:'+item.age+'</span></li>';
                })
                $("#changeData").append(lilist)
            } 
            console.log(e.data)
        }
    })
})
</script>
</html>

效果图如下:

  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vite-plugin-mock 是一个基于 Vite 的插件,用于模拟接口数据,方便前端开发和调试。它可以实现简单的增删改查操作。下面我将分别介绍各个操作的实现方式。 1. 增加数据:在使用 vite-plugin-mock 时,我们可以在 mock 目录下创建一个 js 文件,然后在其中定义一个路由,指定请求方法和路径。在路由的处理函数中,我们可以通过获取请求的参数,然后将参数作为新的数据存储起来。例如,在处理 POST 请求时,我们可以使用 `ctx.body` 来获取请求体中的参数,然后将参数存储到一个数组或者对象中。 2. 删除数据:通过 vite-plugin-mock,我们可以在路由的处理函数中获取请求参数,然后根据参数中指定的标识符或条件,将对应的数据从存储中删除。例如,处理 DELETE 请求时,可以通过参数中的 id 来确定要删除的数据,并从存储的数组中将其删除。 3. 修改数据:在处理 PUT 或 PATCH 请求时,我们可以通过路由的处理函数获取请求参数,然后根据参数中指定的标识符或条件,找到对应的数据。接着,我们可以对数据进行修改,例如修改某个字段的值,然后将修改后的数据更新到存储中。 4. 查询数据:当处理 GET 请求时,我们可以通过路由的处理函数获取请求参数,然后根据参数中指定的标识符或条件,从存储中查询对应的数据。最后,将查询结果作为响应返回给前端。 总的来说,使用 vite-plugin-mock 可以方便地模拟增删改查操作。我们只需要定义相应的路由和处理函数,然后在函数中根据请求参数操作数据存储即可。这样,前端开发人员可以在开发阶段快速获取和操作模拟的接口数据,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风小薇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值