Maximum call stack size exceeded错误描述:超出最大调用堆栈大小
概念:
js中的堆栈内存,俗称叫做作用域(全局作用域/私有作用域),为js代码执行的环境(执行js代码的地方),基本数据类型值是存在栈内存的
堆内存: 存储引用数据类型值的(相当于一个存储的仓库),对象存储的是键值对,函数存储的是代码字符串;
栈内存: 一般情况下,函数执行形成栈内存,函数执行完,浏览器会把形成的占内存自动释放;有时候执行完成,占内存不能被释放,全局作用域在加载页面的时候执行,在关掉页面的时候销毁;
原因:挂载路由导航守卫
原代码:
// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
if (to.pash === '/login') return next()
// 获取 token
const tokenStr = window.sessionStorage.getItem('token')
// 判断 token
if (!tokenStr) return next('/login')
next()
})
代码改造:解决
// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
if (to.pash === '/login') return next()
// 获取 token
const tokenStr = window.sessionStorage.getItem('token')
// 判断 token
if (!tokenStr && to.path !== '/login') return next('/login')
next()
})