美文网首页
vue-resource拦截接口,模拟数据

vue-resource拦截接口,模拟数据

作者: AAA前端 | 来源:发表于2019-03-14 17:27 被阅读0次

目前用vue-cli3完成一个小项目,后端把接口定义好了,传递参数,返回参数等等,但是还没有开发完成,一般我们都是本地在代码里面返回一个json数据,没有使用接口。等到后端接口上线后,才把请求等数据放进去。

这次由于小项目所有使用的是vue-resource发送请求,利用里面的拦截器实现对请求url的判断,返回对应的数据(其中可以根据自己传递的参数,返回不同的结果。);

下面是我的项目结构

image.png

test文件夹是我用来放返回数据的文件夹,其中有一个test.js是我用来拦截接口返回的本地数。(但是如果接口多可以多个js,各自完成各自的接口数据,最后倒入到统一个js里面。我这里试验一个就行了。)

1.test.js

// 第一个接口返回
function jiekou1(obj){
  return {
    name: obj.name,
    age: 14
  }
}
// 第二个接口返回
function jiekou2(list){
  return list.map((v)=>{
    return v+"同学"
  })
}

// 第三个接口返回
function jiekou3(list){
  return list.map(v=>{
    if(v.age>18){
      return v
    }
  })
}

export default {
  jiekou1,
  jiekou2,
  jiekou3
}

*在这里我模拟了三个后端接口,当然有点简单,里面自己可以完成自己的逻辑,模拟后台返回数据。

2.main.js

import Vue from 'vue'
import Vuex from 'vuex'
import App from './App.vue'
import router from './router'
import store from './store'
import VueResource from 'vue-resource'
import resData from '../test/test'

Vue.config.productionTip = false

Vue.config.devtools = true

Vue.use(VueResource)
Vue.use(Vuex)



Vue.http.interceptors.push(function(request, next) {
    console.log('request', request)
    // 判断request.url 觉得返回的时候返回那个数据
    console.log('resData',resData)
    var fn = resData.jiekou1(request.params);

    // 可以用一个js来管理所有的路径对应的resData里面的方法
    /* if(request.url == 'jjjjskdjklfajsdkl'){
          fn = resData.params
    } */
    next(() => {      
        var obj = {
          body: fn,
          bodyText: JSON.stringify(fn),
          headers: '',
          ok: true,
          status: 200,
          statusText: "OK",
          url: request.url
        }
        return obj;
    })
})

router.beforeEach((to, from, next) => {
    if (to.meta.title) {
        document.title = to.meta.title;
    }
    next();
});

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')

  • 在这里通过resData返回了所以的模拟结果函数,通过拦截器Vue.http.interceptors 拦截请求 request.url判断当前请求的url是什么,返回对应的处理函数。(url多的话,用一个js统一管理)。
  • 然后函数里面的参数,在发送请求的时候,把参数传递进来就好。 最后next返回函数。

3 实际使用

methods: {
    test(){
      console.log('开始')
      // 后端接口 http://www.test.com  还没有开发好
      this.$http.get('http://www.test.com', { params: { name: '张三' } ).then(res=>{
        console.log('获取拦截结果',res)
      })
    }
}
  • 在需要使用请求的vue页面中,发送数就好,接口就是后端定义的接口,然后,参数就像 我写的栗子。就可以返回接口了。

贴图


image.png
  • 控制台可以看到已经取到了数据,之后就可以顺利进行自己的开发了。

相关文章

  • vue-resource拦截接口,模拟数据

    目前用vue-cli3完成一个小项目,后端把接口定义好了,传递参数,返回参数等等,但是还没有开发完成,一般我们都是...

  • Mockjs ( 模拟数据 ) 快速入门

    mockjs 根据规则生成随机数据, 通过拦截ajax 请求实现 模拟前端数据接口 安装 主要模块 mock根据数...

  • 2018-12-06 mock.js的使用

    目的 mock.js能够拦截Ajax请求,生成模拟数据进行接口调试,模拟了前后端调试的环境,使得前端开发能够独立于...

  • vue-resource/axios发起请求

    vue-resource 发出 axios发出 vue-resource全局配置 axios 拦截器

  • 个人中心-mock数据

    目的:mockjs基本使用 mockjs可以模拟可更快的得到较为真实的数据,且可以拦截axios的接口调用,让我们...

  • Android-接口数据加密

    为了增加项目的安全性,避免被别人通过拦截接口请求和相关参数,从而模拟数据并频繁调用接口,造成服务器压力过大;还有一...

  • MOCK.js 让前端独立与后端进行开发

    1.基于 数据模板 生成模拟数据。2.基于 HTML模板 生成模拟数据。3.拦截并模拟 ajax 请求。 解决的问...

  • mockjs

    Mockjs 无侵入性的、生成拟真数据、请求拦截,可以帮助前端不依赖后端的接口进行并行开发。 安装依赖 生成模拟数...

  • Vue2.0一个login跳转实例

    需要解决的问题:store存储登录状态Vue-Router导航钩子拦截路由Vue-Resource获取后台的数据需...

  • 前端虚拟接口mockJs的接入

    标签(空格分隔): mockjs 模拟接口数据 前后端分离开发 序 前端模拟接口数据的方式,大概分为以下...

网友评论

      本文标题:vue-resource拦截接口,模拟数据

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