• vue + axios + mock


    参考来源:Vue mock.js模拟数据实现首页导航与左侧菜单功能_vue.js_AB教程网

    记录步骤:在参考资料来源添加axios步骤

    1、安装mock依赖
    npm install mock -D //只在开发环境使用

    下载完成后,项目文件package.json中的devDependencies就会加上一个mock依赖;

    2、添加开发环境及生产环境的配置

    我们在config文件夹下的dev.env.js、prod.env.js两个文件里添加配置;

    dev.env.js

    1. 'use strict'
    2. const merge = require('webpack-merge')
    3. const prodEnv = require('./prod.env')
    4. module.exports = merge(prodEnv, {
    5. NODE_ENV: '"development"',
    6. MOCK: 'true'
    7. })

    prod.env.js

    1. 'use strict'
    2. module.exports = {
    3. NODE_ENV: '"production"',
    4. MOCK: 'false'
    5. }
    3、引入到main.js(这里引用是本地的地址)

    import Mock from "./mock/index";
    mock/index.js (两种写法都可以,选择一种)
    1. //index.js
    2. // 引入: mockjs 模块;
    3. import Mock from 'mockjs'
    4. // 设置拦截Ajax请求的响应时间,模拟网络延迟
    5. Mock.setup({
    6. timeout: '200-600'
    7. })
    8. // 写法一
    9. // Mock.mock('/parameter/query', '', (opts) => {
    10. // debugger
    11. // opts['data'] = opts.body ? JSON.parse(opts.body) : null
    12. // delete opts.body
    13. // return opts
    14. // })
    15. // 写法二
    16. // Mock.mock('/parameter/query', {
    17. // name: "@name()",
    18. // city: "@city()"
    19. // })
    20. // 数据必须输出
    21. export default Mock
    4、开始使用 axios

    配置 request.js  ,在每个接口文件前引用这个文件

    1. /**** request.js ****/
    2. import axios from 'axios'
    3. //1. 创建新的axios实例
    4. const request = axios.create({
    5. // baseURL: '/api', // 公共接口-本地 所有接口地址前面加api
    6. timeout: 30 * 1000, // 超时时间单位是ms
    7. headers: {
    8. "Content-Type": "application/json",
    9. },
    10. })
    11. // 2.请求拦截器
    12. request.interceptors.request.use(config => {
    13. // config.headers.Authorization = ''; //如果要求携带在请求头中
    14. return config;
    15. }, error => {
    16. console.log(error)
    17. return Promise.reject(error);
    18. })
    19. // 3.响应拦截器
    20. request.interceptors.response.use(response => {
    21. return response;
    22. }, error => {
    23. // console.log(error)
    24. return Promise.reject(error);
    25. }
    26. )
    27. //4.导出文件
    28. export default request

    1. import request from '@/http/request'//第一步文件的地址
    2. //自己写的mock地址,后文顺带记录一下mock使用方法
    3. export function mocktest(params) {
    4. return request({
    5. type: "get",
    6. url: '/parameter/query',
    7. data: params
    8. });
    9. }

    到这里就可以在页面直接使用了,想要进一步完善,或者全局引用接口,可以自己封装

    1. <script>
    2. import HeaderBar from "./Header.vue"
    3. import MainBar from "./Main.vue"
    4. //引用一下api文件中写好的方法,要用哪个就写哪个
    5. import { mocktest } from "@/http/api";
    6. // 可以按需引入,可以全局引用
    7. // import api from '@/http'
    8. export default {
    9. name: "index",
    10. components:{
    11. MainBar,
    12. HeaderBar
    13. },
    14. data(){
    15. return{
    16. }
    17. },
    18. methods:{
    19. },
    20. mounted() {
    21. //调用封装好的接口
    22. mocktest().then(res=>{
    23. console.log('res',res)
    24. })
    25. this.ce()
    26. },
    27. }
    28. script>
    29. <style scoped>
    30. style>

  • 相关阅读:
    Win11网络不稳定怎么办?Win11连接wifi频繁掉线的解决方法
    vue+axios——创建多个实例共用请求拦截器和响应拦截器(403错误信息不提示bug解决)——基础积累
    PDF如何转word文档
    YGG 近期游戏合作伙伴一览
    Vue自定义指令
    容器化技术最佳实践1--容器化技术简介与Docker入门
    自动驾驶,是“平视”还是“俯视”?
    下文笔者讲述java中Collections.reverse()方法功能简介说明
    Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子园林智能监测解决方案
    记一次 .NET 某娱乐聊天流平台 CPU 爆高分析
  • 原文地址:https://blog.csdn.net/fxqyilu/article/details/134208156