Maximum call stack size exceeded:超出最大调用堆栈大小

前两天下载好插件后今天打开vue项目突然报这个错误,想不通,网上查了好几篇文章都解决不了我的问题

Snipaste_2021-02-09_21-20-20

查了写的代码forEach代码段注释了也还是这样,后来看了几个文件终于在main.js文件中找到问题

Snipaste_2021-02-09_21-25-45

原因是我使用.use(axios)来引入axios了,在axios的包里找到了utils.js

Snipaste_2021-02-10_01-12-12
Snipaste_2021-02-10_00-15-19
  • axios是一个库,并不是vue中的第三方插件,使用时不能通过Vue.use()安装插件,需要在原型上进行绑定

    1
    2
    3
    import Vue from 'vue'
    import axios from ‘axios’
    Vue.prototype.$http = axios
  • 使用插件可用vue-axios:https://www.npmjs.com/package/vue-axios

    1
    2
    3
    import axios from 'axios'
    import VueAxios from 'vue-axios'
    Vue.use(VueAxios, axios)
  • 关于超出最大调用堆栈大小,我在网上找到的解释:

    1
    2
    (function a() {
    a();})();
    • 这是一小撮调用后的堆栈,如此,调用堆栈不断增长,直到达到极限:浏览器硬编码堆栈大小或内存耗尽。

    • 为了修复它,请确保您的递归函数有一个能够满足

    1
    2
    3
    4
    5
    6
    7
    (function a(x) {
    // The following condition
    // is the base case.
    if ( ! x) {
    return;
    }
    a(--x);})(10);