【问题标题】:How to import Nuxt modules inside a js file如何在 js 文件中导入 Nuxt 模块
【发布时间】:2020-11-13 21:13:29
【问题描述】:

我要做的是在 js 文件中导入 Nuxt 模块。 例如,我想在 js 文件中使用“@nuxt/axios”并从中创建一个实例,我不想从上下文对象中调用它我想让该实例与任何 Nuxt 生命周期分开并使用nuxt axios 模块不是普通的 axios 包。

import axios from "@nuxt/axios"

const axiosInstace = axios.create();

export default axiosInstace;

【问题讨论】:

    标签: javascript vue.js axios nuxt.js


    【解决方案1】:

    就像@Florian Pallas 提到的那样。不要使用这些模块。使用 NPM 或/和从 plugins 扩展 Axios

    编辑的答案: 我记得在某处看到过这段代码

    const myAPI = axios.create({
      baseURL: 'https://api.domaine.com/',
      withCredentials: false,
      headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json'
      },
      params: {
        order: 'desc',
        sort: 'name'
      }
    })
    
    function request(id) {
        myAPI.get('/users/'+id);
    }
    
    request(123)
    

    【讨论】:

    • 看看我要创建的是使 axios 中的 baseURL 与带有一些前缀的域相同,或者换句话说,更动态,如果我有上下文对象,就会发生这种情况,我需要在没有上下文对象的情况下创建相同的功能
    • 检查我的答案
    • 在我的情况下,baseURL 取决于域,因为我尝试创建一个 saas 项目,所以我不能直接设置 baseURL,我想给它添加前缀。我试图在“@nuxt/axios”中创建该功能,因为“@nuxt/axios”有一个函数“onRequest”这个函数就像“axiosinterceptors.request”这个函数上有一个公共对象,里面有发送的域,但这仅发生在“@nuxt/axios”中而不是普通的“axios”中,这就是为什么我需要导入这个包以在没有上下文对象的不同文件中使用它,或者在普通的 axios 中以某种方式为域添加前缀动态的。
    • 你试过这个包吗? github.com/srph/axios-base-url
    • 我认为这个包会对我有所帮助,因为如果您使用的是 axios >=v0.8,请使用开箱即用的库提供的基本 url 配置。
    【解决方案2】:

    不要直接使用这些模块。 @nuxt/axios 只是 axios 模块的包装器。只需使用它 (NPM)。大多数其他 nuxt 模块也是如此。

    【讨论】:

    • 看看我要创建的是使 axios 中的 baseURL 与带有一些前缀的域相同,或者换句话说,更动态,如果我有上下文对象,就会发生这种情况,我需要在没有上下文对象的情况下创建相同的功能
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多