报错: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
Logo

前往低代码交流专区

更多推荐