zoukankan      html  css  js  c++  java
  • vue router按需加载

     1 import Vue from 'vue'
     2 import Router from 'vue-router'
     3 
     4 Vue.use(Router);
     5 //按需加载,当渲染其他页面时才加载其组件,并缓存,减少首屏加载时间
     6 const Index = resolve => require(['@/views/Index.vue'], resolve)
     7 const Category = resolve => require(['@/views/Category.vue'], resolve)
     8 const CategoryMain = resolve => require(['@/components/category/main.vue'], resolve)
     9 const Car = resolve => require(['@/views/Car.vue'],resolve)
    10 const User = resolve => require(['@/views/User.vue'], resolve)
    11 const Detail = resolve => require(['@/views/Detail.vue'], resolve)
    12 const Search = resolve => require(['@/views/Search.vue'], resolve)
    13 const Pay = resolve => require(['@/components/car/pay/pay.vue'], resolve)
    14 const Login = resolve => require(['@/views/login.vue'], resolve)
    15 
    16 
    17 export default new Router({
    18   routes: [{
    19       path: '/',
    20       name: '首页',
    21       component: Index
    22     }, {
    23       path: '/category',
    24       name: '分类页',
    25       redirect: '/category/all',
    26       component: Category,
    27       children: [{
    28         path: '/category/:tab',
    29         component:CategoryMain
    30       }]
    31     }, {
    32       path: '/car',
    33       name: '购物车页',
    34       component: Car
    35     }, {
    36       path: '/car/pay',
    37       name: '支付页',
    38       component: Pay
    39     },
    40     {
    41       path: '/user',
    42       name: '用户页',
    43       component: User,
    44       meta: {
    45            requireAuth: true,  // 添加该字段,表示进入这个路由是需要登录才能进入的
    46        },
    47     }, {
    48       path: '/detail',
    49       name: '详情页',
    50       component: Detail
    51     }, {
    52       path: '/search',
    53       name: '搜索页',
    54       component: Search
    55     },{
    56       path: '/login',
    57       name: '登录页',
    58       component: Login
    59     }
    60   ]
    61 })
      1 import Vue from 'vue'
      2 import Router from 'vue-router'
      3 
      4 // import Index from '@/components/index/index'
      5 // import Find from '@/components/find/find'
      6 // import Order from '@/components/order/order'
      7 // import Mine from '@/components/mine/mine'
      8 // import RestaurantDetail from '@/components/index/restaurant-detail/restaurant-detail'
      9 // import RestaurantList from '@/components/index/restaurant-list/restaurant-list'
     10 // import Goods from '@/components/index/restaurant-detail/goods/goods'
     11 // import Ratings from '@/components/index/restaurant-detail/ratings/ratings'
     12 // import Seller from '@/components/index/restaurant-detail/seller/seller'
     13 // import login from '@/components/login/login'
     14 
     15 Vue.use(Router)
     16 
     17 // 路由懒加载
     18 const Index = (resolve) => {
     19   import('@/components/index/index').then((module) => {
     20     resolve(module)
     21   })
     22 }
     23 const Find = (resolve) => {
     24   import('@/components/find/find').then((module) => {
     25     resolve(module)
     26   })
     27 }
     28 const Order = (resolve) => {
     29   import('@/components/order/order').then((module) => {
     30     resolve(module)
     31   })
     32 }
     33 const Mine = (resolve) => {
     34   import('@/components/mine/mine').then((module) => {
     35     resolve(module)
     36   })
     37 }
     38 const RestaurantDetail = (resolve) => {
     39   import('@/components/index/restaurant-detail/restaurant-detail').then((module) => {
     40     resolve(module)
     41   })
     42 }
     43 const RestaurantList = (resolve) => {
     44   import('@/components/index/restaurant-list/restaurant-list').then((module) => {
     45     resolve(module)
     46   })
     47 }
     48 const Goods = (resolve) => {
     49   import('@/components/index/restaurant-detail/goods/goods').then((module) => {
     50     resolve(module)
     51   })
     52 }
     53 const Ratings = (resolve) => {
     54   import('@/components/index/restaurant-detail/ratings/ratings').then((module) => {
     55     resolve(module)
     56   })
     57 }
     58 const Seller = (resolve) => {
     59   import('@/components/index/restaurant-detail/seller/seller').then((module) => {
     60     resolve(module)
     61   })
     62 }
     63 const login = (resolve) => {
     64   import('@/components/login/login').then((module) => {
     65     resolve(module)
     66   })
     67 }
     68 
     69 export default new Router({
     70   routes: [
     71     // 根路径
     72     {
     73       path: '/',
     74       redirect: '/index',
     75       component: Index
     76     },
     77     // 首页
     78     {
     79       path: '/index',
     80       component: Index
     81     },
     82     // 登录
     83     {
     84       path: '/login',
     85       component: login
     86     },
     87     // 商家列表
     88     {
     89       path: '/restaurant_list',
     90       component: RestaurantList
     91     },
     92     // 商家模块
     93     {
     94       path: '/restaurant',
     95       redirect: '/restaurant/goods',
     96       component: RestaurantDetail,
     97       children: [
     98         {
     99           path: 'goods',
    100           component: Goods
    101         },
    102         {
    103           path: 'ratings',
    104           component: Ratings
    105         },
    106         {
    107           path: 'seller',
    108           component: Seller
    109         }
    110       ]
    111     },
    112     // 发现
    113     {
    114       path: '/find',
    115       component: Find
    116     },
    117     // 订单
    118     {
    119       path: '/order',
    120       component: Order
    121     },
    122     // 我的
    123     {
    124       path: '/mine',
    125       component: Mine
    126     }
    127   ]
    128 })
  • 相关阅读:
    Qt实战6.万能的无边框窗口(FramelessWindow)
    Qt实战5.如何获取USB设备信息?
    Qt实战4.简单封装的文件监控
    Qt实战3.Qt仿Win10风格界面
    Linux下使用脚本让程序顺序启动
    项目经验1.软件的开发过程
    Qt实战2.老生常谈的文件传输
    mysql导入txt文件
    linux离线安装python3
    mysql知识点
  • 原文地址:https://www.cnblogs.com/1032473245jing/p/8984641.html
Copyright © 2011-2022 走看看