美文网首页js
json-server和axios“夫妻档”配合

json-server和axios“夫妻档”配合

作者: cj_jax | 来源:发表于2018-12-26 09:55 被阅读0次

    json-server

    ​ 是 NodeJS 的一个包,作用:用来提供假数据

    ​ 在没有服务器接口的时候,通过这个工具提供一个假数据,当有了服务器接口

    ​ 再替换为真正的真数据(服务器接口数据)即可

    ​ 只要提供一个 json 数据(文件)给 json-server ,那么 json-server 就可以提供

    ​ 针对于这个 json数据的 CRUD 、 分页、 搜索 等功能

    使用步骤:

    ​ 1 全局安装: npm i -g json-server

    ​ 2 准备一个 json 文件

    ​ 3 在 json 文件所在目录中,运行命令: json-server todos.json --watch

    ​ 特点:

    ​ 1.json-server提供的接口是:REST API(restful)

    ​ 2.提供的接口没有跨域问题

    查询的方式:get

    ​ 查询所有:

    http://localhost:3000/todos

    ​ 查询某一条数据(id为2的数据)

    http://localhost:3000/todos/2

    添加:POST请求

    ​ 接口地址:http://localhost:3000/todos
    在软件中:row--->json
    不需要写id,直接写

    注意点:
    在json中写数据格式必须给键名加上双引号

    {
        "name":"梳头",
        "done":false
    }
    
    修改数据:PATCH /PUT 请求

    ​ 修改id为2的数据

    ​ 接口地址:http://localhost:3000/todos/2

    特点:使用put请求,需要将所有的数据,都发送给接口
    patch 打补丁

    删除数据:DELETE请求

    删除id为2
    接口地址:http://localhost:3000/todos/2

    axios的使用

    定义

    ​ axios 是一个专门用来发送ajax请求的包,是一个http客户端,可以运行在浏览器和node中发送请求

    ​ 注意点:

    ​ axios与vue没有关系,就是axios是一个独立的包

    使用:
    1.安装 npm i axios
    2.在页面中引入axios,然后使用

    发送查询GET请求

    查询 不传参

    axios.get('http://localhost:3000/todos').then(res=>{
        console.log('结果为:',res.data)
    })
    

    传参查询

    // 传参查询
    axios.get('http://localhost:3000/todos',{
      params:{
        _page:1,
        _limit:2
      }
    }).then(res=>{
      console.log('获取的结果为',res.data)
      
    })
    
    添加 POST请求
    // 添加 POST
    axios
    .post('http://localhost:3000/todos',{
      name:'关门',
      done:false
    })
    .then(res=>{
      console.log('添加成功',res.data)
    }); 
    
    修改patch/put
    // 修改 patch / put
    axios
    .patch('http://localhost:3000/todos/3',{
      name:'养发'
    })
    .then(res=>{
      console.log('修改成功',res.data)
      
    });
    
    axios.put('http://localhost:3000/todos/3',{
      name:'理发'
    }).then(res=>{
      console.log('使用put修改成功',res.data)
    });
    
    删除delete
    // 删除delete
    axios.delete('http://localhost:3000/todos/3').then(res=>{
      console.log('删除任务成功',res.data)
    });
    

    使用模板拼接字符串

    字符串模板拼接字符串

    ​ 利用字符串模板来拼接字符串:

    ​ ${} 作用相当于原来的字符串拼接

    ​ ${} 中可以使用任意的JS表达式

    ​ const msg = 年龄:${age},姓名:${name},是否为成年人:${age>18?'是':'否'}

    过滤器的使用

    过滤器的语法:通过 | 管道符号,来使用过滤器

    作用:使用 date 过滤器,来格式化 curTime 这个数据,最终,将格式化后的数据输出

      //html
      <div id="app">
          <!-- 过滤器的语法:通过 | 管道符号,来使用过滤器 -->
          <!-- 
            作用:使用 date 过滤器,来格式化 curTime 这个数据,最终,将格式化后的数据输出 -->
          <p>{{ curTime | date }}</p>
          <p>{{ curTime | date }}</p>
          <p>{{ curTime | date }}</p>
          <p>{{ curTime | date }}</p>
        </div>
    

    回调函数第一个参数:表示要格式化的数据

    后面可以有任意多个参数,这些参数都是在 使用过滤器 的时候传入的

    Vue.filter('date', input => {
        return moment(input).format('YYYY-MM-DD HH:mm:ss')
    })
    
    全局过滤器

    调用本地方法格式化时间

    Vue.filter('data',(input)=>{
      //调用本地方法格式化时间
      console.log(input.toLocaleString())
      return input.toLocaleString()
      
    });
    const vm = new Vue({
      el: '#app',
      data: {
        currDate : new Date
      }
    })
    

    使用moment格式化时间
    //使用moment格式化时间
    Vue.filter('data',(input)=>{
    //调用comment格式化时间
    input = moment(input).format('YYYY-MM-DD HH:mm:ss');
    return input;
    // return input.toLocaleString()
    });
    const vm = new Vue({
    el: '#app',
    data: {
    currDate : new Date
    }
    })

    局部过滤器

    注意点:

    定义局部过滤器,必须在vue的实例当中

    //局部过滤器
    filters:{
        data(input,type){
            return moment(input).format(type)
        }
    }
    

    全局过滤器 和 局部过滤器的不同之处???

    ​ 全局过滤器可以在任意 Vue实例(组件) 中使用

    ​ 局部过滤器,只能在当前 Vue实例(组件)中使用

    相关文章

      网友评论

        本文标题:json-server和axios“夫妻档”配合

        本文链接:https://www.haomeiwen.com/subject/pwiclqtx.html