router

发布时间 2023-11-18 21:42:49作者: 超爱彬宝同学
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '@/views/login'
import Layout from '@/views/layout'
import Search from '@/views/search'
import SearchList from '@/views/search/list'
import ProDetail from '@/views/prodetail'
import Pay from '@/views/pay'
import MyOrder from '@/views/myorder'

import cart from '@/views/layout/layoutshow/cart'
import home from '@/views/layout/layoutshow/home'
import category from '@/views/layout/layoutshow/category'
import user from '@/views/layout/layoutshow/user'
Vue.use(VueRouter)

const routes = [
  { path: '/login', component: Login },
    {
      path: '/',
      component: Layout,
      redirect:'/home',
      children:[
        { path: '/home', component: home },
        { path: '/cart', component: cart },
        { path: '/category', component: category },
        { path: '/user', component: user },
      ]
    },
    { path: '/search', component: Search },
    { path: '/searchlist', component: SearchList },
    // 动态路由传参,确认将来是哪个商品,路由参数中携带 id
    { path: '/prodetail/:id', component: ProDetail },
    { path: '/pay', component: Pay },
    { path: '/myorder', component: MyOrder }
]

const router = new VueRouter({
  routes
})
//定义一个需要拦截的路径数组
const authUrls=['/pay','/myorder']
router.beforeEach((to, from,next) => {
  if(!authUrls.includes(to.path)){
    //没有包含直接放行
    next()
  }else{
    next('/login')
  }
})
export default router