import Vue from 'vue'
import Router from 'vue-router' Vue.use(Router);
//按需加载,当渲染其他页面时才加载其组件,并缓存,减少首屏加载时间
const Index = resolve => require(['@/views/Index.vue'], resolve)
const Category = resolve => require(['@/views/Category.vue'], resolve)
const CategoryMain = resolve => require(['@/components/category/main.vue'], resolve)
const Car = resolve => require(['@/views/Car.vue'],resolve)
const User = resolve => require(['@/views/User.vue'], resolve)
const Detail = resolve => require(['@/views/Detail.vue'], resolve)
const Search = resolve => require(['@/views/Search.vue'], resolve)
const Pay = resolve => require(['@/components/car/pay/pay.vue'], resolve)
const Login = resolve => require(['@/views/login.vue'], resolve) export default new Router({
routes: [{
path: '/',
name: '首页',
component: Index
}, {
path: '/category',
name: '分类页',
redirect: '/category/all',
component: Category,
children: [{
path: '/category/:tab',
component:CategoryMain
}]
}, {
path: '/car',
name: '购物车页',
component: Car
}, {
path: '/car/pay',
name: '支付页',
component: Pay
},
{
path: '/user',
name: '用户页',
component: User,
meta: {
requireAuth: true, // 添加该字段,表示进入这个路由是需要登录才能进入的
},
}, {
path: '/detail',
name: '详情页',
component: Detail
}, {
path: '/search',
name: '搜索页',
component: Search
},{
path: '/login',
name: '登录页',
component: Login
}
]
})
 import Vue from 'vue'
import Router from 'vue-router' // import Index from '@/components/index/index'
// import Find from '@/components/find/find'
// import Order from '@/components/order/order'
// import Mine from '@/components/mine/mine'
// import RestaurantDetail from '@/components/index/restaurant-detail/restaurant-detail'
// import RestaurantList from '@/components/index/restaurant-list/restaurant-list'
// import Goods from '@/components/index/restaurant-detail/goods/goods'
// import Ratings from '@/components/index/restaurant-detail/ratings/ratings'
// import Seller from '@/components/index/restaurant-detail/seller/seller'
// import login from '@/components/login/login' Vue.use(Router) // 路由懒加载
const Index = (resolve) => {
import('@/components/index/index').then((module) => {
resolve(module)
})
}
const Find = (resolve) => {
import('@/components/find/find').then((module) => {
resolve(module)
})
}
const Order = (resolve) => {
import('@/components/order/order').then((module) => {
resolve(module)
})
}
const Mine = (resolve) => {
import('@/components/mine/mine').then((module) => {
resolve(module)
})
}
const RestaurantDetail = (resolve) => {
import('@/components/index/restaurant-detail/restaurant-detail').then((module) => {
resolve(module)
})
}
const RestaurantList = (resolve) => {
import('@/components/index/restaurant-list/restaurant-list').then((module) => {
resolve(module)
})
}
const Goods = (resolve) => {
import('@/components/index/restaurant-detail/goods/goods').then((module) => {
resolve(module)
})
}
const Ratings = (resolve) => {
import('@/components/index/restaurant-detail/ratings/ratings').then((module) => {
resolve(module)
})
}
const Seller = (resolve) => {
import('@/components/index/restaurant-detail/seller/seller').then((module) => {
resolve(module)
})
}
const login = (resolve) => {
import('@/components/login/login').then((module) => {
resolve(module)
})
} export default new Router({
routes: [
// 根路径
{
path: '/',
redirect: '/index',
component: Index
},
// 首页
{
path: '/index',
component: Index
},
// 登录
{
path: '/login',
component: login
},
// 商家列表
{
path: '/restaurant_list',
component: RestaurantList
},
// 商家模块
{
path: '/restaurant',
redirect: '/restaurant/goods',
component: RestaurantDetail,
children: [
{
path: 'goods',
component: Goods
},
{
path: 'ratings',
component: Ratings
},
{
path: 'seller',
component: Seller
}
]
},
// 发现
{
path: '/find',
component: Find
},
// 订单
{
path: '/order',
component: Order
},
// 我的
{
path: '/mine',
component: Mine
}
]
})

vue router按需加载的更多相关文章

  1. 深入浅出的webpack4构建工具---webpack+vue+router 按需加载页面(十五)

    1. 为什么需要按需加载? 对于vue单页应用来讲,我们常见的做法把页面上所有的代码都打包到一个bundle.js文件内,但是随着项目越来越大,文件越来越多的情况下,那么bundle.js文件也会越来 ...

  2. 原创《分享(Angular 和 Vue)按需加载的项目实践优化方案》

    针对前端优化的点有很多,例如:图片压缩,雪碧图,js/css/html 文件的压缩合并,  cdn缓存, 减少重定向, 按需加载 等等 最近有心想针对 ionic项目 和 vue项目,做一个比较大的优 ...

  3. Vue Router的懒加载路径

    单页应用产出的入口chunk大小随着业务的复杂度线性增加,导致后期加载速度越来越慢.后面就需要对不同路径下的模块进行拆分,打包到相应的chunk下,按需加载,找到chunk的大小.个数和页面加载速度的 ...

  4. vue项目按需加载的3种方式

    本文重要是路由打包优化: 原理:利用webpack对代码进行分割是懒加载的前提,懒加载就是异步调用组件,需要时候才下载. 1.vue异步组件技术 vue-router配置路由,使用vue的异步组件技术 ...

  5. React Router 按需加载+服务器渲染的闪屏问题

    伴随着React协议的『妥协』(v16采用MIT),React为项目的主体,这个在短期内是不会改变的了,在平时使用过程中发现了如下这个问题: 在服务器渲染的时候,刷新页面会出现闪屏的现象(白屏一闪而过 ...

  6. vue实现按需加载(懒加载)

    1.router文件中使用 export default new Router({ routes: [{ path: '/', name: 'Post', component: () => im ...

  7. Vue按需加载提升用户体验

    Vue官方文档异步组件: 在大型应用中,我们可能需要将应用拆分为多个小模块,按需从服务器下载.为了让事情更简单, Vue.js 允许将组件定义为一个工厂函数,动态地解析组件的定义.Vue.js 只在组 ...

  8. vue单页面打包文件大?首次加载慢?按需加载?是你打开方式不对

    部署各vue项目,走了一遍坑.... vue单页面应用刷新404 找到nginx多网站配置文件:类似nginx/sites-available/www.baidu.com server { liste ...

  9. vue中路由按需加载的几种方式

    使用vue-cli构建项目后,我们会在Router文件夹下面的index.js里面引入相关的路由组件,如: import Hello from '@/components/Hello' import ...

随机推荐

  1. ExtJS4 给同一个formpanel不同的url

    formpanel能够这样使用,api上的样例: var panel=Ext.create('Ext.form.Panel', { title: 'Simple Form', bodyPadding: ...

  2. 1、hive安装详细步骤

    一.环境准备 hadoop-2.7.2 java 1.7.0 apache-hive-1.2.1 mysql Hive配置文件介绍 •hive-site.xml      hive的配置文件 •hiv ...

  3. golang安装环境变量配置和beegoan安装

    下载安装 go get github.com/astaxie/beego bee 工具的安装 go get github.com/beego/bee 升级 $ go get -u github.com ...

  4. 024-Spring Boot 应用的打包和部署

    一.概述 二.手工打包[不推荐] 打包命令:maven clean package 打包并导出依赖:maven clean package dependency:copy-dependencies 1 ...

  5. 我的第二个Python小程序

    输出0-100之间的偶数: # Author: fansik # Description: Output an even number between 0 and 100 # method one n ...

  6. Kafka简介、安装

    一.Kafka简介 Kafka是一个分布式.可分区的.可复制的消息系统.几个基本的消息系统术语:1.消费者(Consumer):从消息队列(Kafka)中请求消息的客户端应用程序.2.生产者(Prod ...

  7. 实现对第三方应用任意SO注入

    实现对第三方应用任意SO注入 0x01 应用在Android中运行,从外部对该进程可以进行任意SO文件动态注入,就是应用动态运行我们的SO文件 0x02 基本的逻辑是: 1.    获取目标进程的pi ...

  8. Loadrunder脚本篇——关联数组(参数数组)

    导言 前面说过可以用关联取出服务器相关的一些动态变化的信息,前面也提过web_reg_save_param中可以设置ord=all,代表从服务器中取出的是一个数组,它试用的场景是当我访问一个发帖网站, ...

  9. IBM的SOA方法论之一——五个切入点和八个场景

    一.什么是SOA: 面向服务的体系结构(Service-Oriented Architecture,SOA)是一种 IT 体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要 ...

  10. 嵌入式Qt程序启动参数-qws 不需要X11桌面系统

    1 背景 通过串口终端启动arm开发板(linux系统)的Qt应用程序,提示: [root@FORLINX6410]# /opt/qt-4.7.1/demos/textedit/textedit s3 ...