日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue 开发中常见报错与处理

發(fā)布時間:2024/9/27 vue 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue 开发中常见报错与处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.



1. “xxxx” is assigned a value but never used.eslintno-unused-vars

錯誤原因:eslint的驗證語法

解決辦法:在錯誤語句后添加注釋

// eslint-disable-line no-unused-vars

2. RangeError: Maximum call stack size exceeded

在Vue 項目中,暴露路由對象之前,掛載了路由守衛(wèi)(或稱路由導(dǎo)航衛(wèi)士),運行程序,點擊 “退出” 按鈕時,按照程序邏輯就清空了 sessionStorage中 保存的 token 值,但是,我發(fā)現(xiàn)頁面沒有被強制跳轉(zhuǎn)到 login 登錄頁,此時控制臺中報錯如下:

對于 “ RangeError: Maximum call stack size exceeded ” 這條錯誤信息,網(wǎng)上說是因為出現(xiàn)了死循環(huán)。

結(jié)合本項目,我認(rèn)為是路由配置出了問題,或者跳轉(zhuǎn)調(diào)用路由的時候出現(xiàn)死循環(huán)。


報錯時的源代碼:

import Vue from 'vue' import VueRouter from 'vue-router' import Login from '../components/Login.vue' import Home from '../components/Home.vue'Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/', redirect: '/login' },{ path: '/login', component: Login },{ path: '/home', component: Home }] })// 暴露路由對象之前,先掛載路由守衛(wèi) router.beforeEach((to, from, next) => {if (to.push === '/login') return next()// 獲取 tokenconst tokenStr = window.sessionStorage.getItem('token')if (!tokenStr) return next('/login')next() })// 暴露路由對象 export default router

查閱相關(guān)貼子,有老哥說, next('/login') 也會觸發(fā)beforEach,嘗試修改代碼(beforeEach排除的頁面)如下:

// 暴露路由對象之前,先掛載路由守衛(wèi) router.beforeEach((to, from, next) => {if (to.push === '/login') return next()// 獲取 tokenconst tokenStr = window.sessionStorage.getItem('token')const outPaths = ['/login']if (!tokenStr && !outPaths.includes(to.path)) return next('/login')next() })

然后,一保存運行,正常了,哈哈!終于可以睡個好覺了~







textbox|

總結(jié)

以上是生活随笔為你收集整理的Vue 开发中常见报错与处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。