• vue-cli 搭建的项目处理不同环境下请求不同域名的问题


    使用 vue-cli 开发项目过程中, 根据开发环境和正式环境不同, 我们往往需要请求不同域名下的后台接口, 这时候, 该怎么去设置, 达到同一种写法可以根据环境不同而自动切换请求域名呢? 本文将会介绍两种配置方式.

    本文中所有请求都是使用 axios

    一、

    1、修改 config/dev.env.js (开发环境的配置)

    'use strict'
    const merge = require('webpack-merge')
    const prodEnv = require('./prod.env')
    
    module.exports = merge(prodEnv, {
      NODE_ENV: '"development"',
      API_HOST: '"http://localhost:3000"' // 开发环境接口地址(这里是增加的内容)
    })

    2、 修改 config/prod.env.js (正式环境的配置)

    'use strict'
    module.exports = {
      NODE_ENV: '"production"',
      API_HOST: '"http://localhost:8888"'  // 正式环境接口地址(这里是增加的内容)
    }

    3、 使用 axios 发送请求

    axios.get(process.env.API_HOST + '/api/userData') // 请求前加上 `process.env.API_HOST`
      .then(data => {
        console.log(data)
      })

    二、

    第二种方法主要使用 axios 的创建实例的用法

    main.js 配置 axios

    import axios from 'axios'
    
    const host = process.env.NODE_ENV === 'development' ? 'dev api host' : 'prod api host' // 根据 process.env.NODE_ENV 的值判断当前是什么环境
    const instance = axios.create({
      baseURL: host
    })
    
    Vue.prototype.$http = instance

    在组件中调用

    this.$http.get('/api/userData')
      .then(data => {
        console.log(data)
      })

    个人一般采用第二种方式,因为写的方便

  • 相关阅读:
    mysql general log使用介绍
    是否可以根据GTID 选出日志最新的实例
    python踩坑现场,看起来一样的两个字符串,却不相等
    sql case when的使用
    golang 匿名结构体成员,具名结构体成员,继承,组合
    golang go-sql-driver/mysql基本原理
    raft协议中的日志安全性
    go get 安装 go.etcd.io etcd clientv3 报错
    ZGC
    发现jdk9之后,AQS代码有啥变化了吗
  • 原文地址:https://www.cnblogs.com/raind/p/9224527.html
Copyright © 2020-2023  润新知