【记录20】 router. before each is not a function 已解决
报错原因是小编这里引入和定义用的是同一个router之前还可以,今天突然浏览器出现报错没有定义router,找了半天原来只是将其赋值,没有使用引入的,骗过的浏览器导致的,这样是不对的,需要给引入的赋值,import router from 'vue-router',而在写路径时直接赋给了定义的router,没有赋给引入的router,所以就报了这个错误,唉,以后命名还是要不同的名字最好。
·
报错:
router. before each is not a function
小编在今天突然遇到这个报错,报错原因是小编这里引入和定义用的是同一个router之前还可以,今天突然浏览器出现报错没有定义router,找了半天原来只是将其赋值,没有使用引入的,骗过的浏览器导致的,这样是不对的,需要给引入的赋值,import router from ‘vue-router’,而在写路径时直接赋给了定义的router,没有赋给引入的router,所以就报了这个错误,唉,以后命名还是要不同的名字最好。
下面小编将实际错误的写法和正确的写法放在下面啦
,希望能帮到看到这篇文章的同行。每日一个bug,每日提升一点,奥利给!!!
错误写法:
import Vue from 'vue'
import router from 'vue-router'
import home from 'home' //首页
Vue.use(router)
const router = [
{path: '/home', name:'home', component: 'home'}
]
router.beforeEach((to,from,next) => { //路由守卫
console.log(to);
console.log(from)
document.title = to.meta.title
if(to.path !== "/login"){ //判断路由是否为登录路径
if(!sessionStorage.token){ //是否含有token
return next({
path:"/login"
})
}
}
next()
})
export default router
正确的写法:
import Vue from 'vue'
import router from 'vue-router' // 2. 建议用不同的字符表示
import home from 'home' //首页
Vue.use(router)
const router = new router({ [ // 1. 重点在这里,
{path: '/home', name:'home', component: 'home'}
]})
router.beforeEach((to,from,next) => { //路由守卫
console.log(to);
console.log(from)
document.title = to.meta.title
if(to.path !== "/login"){ //判断路由是否为登录路径
if(!sessionStorage.token){ //是否含有token
return next({
path:"/login"
})
}
}
next()
})
export default router
更多推荐
已为社区贡献9条内容
所有评论(0)