vue router自动导入,动态导入,异步加载组件

router自动加载组件具体详情 router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)


let siteRoutes = [];
function importAll(r) {//r 参数自带两个处理属性一个keys 一个是resolve 这里用的keys 具体看官网APi: context module API
    r.keys().forEach((key) => {
        let path = (key.split('.'))[1];//key 就是带了./的文件名 比如我这里打印出来是./About ./Home ./Test 这样你就懂path 和name为什么这样写
        path.indexOf('Home') > -1 ? path = '/' : '';// home页面会被解析为/home,/ 访问为空白,所以做个判断path转为 / 。
        siteRoutes.push({
            path: path,
            name: path.substring(1),
            component: () => r(key)
        })
    });
}

importAll(require.context('../views/', false, /\.vue$/, 'lazy'));// 第二个参数指是否使用子目录 第四个参数是指是否异步 lazy/sync 
const routes = [
    ...siteRoutes,
]
//importRouter(pages)
const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    routes
})

export default router

我的文件结构 我是多站点配置 不用看我外层结构看views文件就可以了

文件结构

### 回答1: Vue Router 可以实现多级路由的动态加载。多级路由是指路由的层级关系,比如父级路由包含子级路由,子级路由可能还包含更多的子级路由。 在Vue Router中,可以使用嵌套路由来实现多级路由。通过定义父级路由和子级路由的配置,可以实现路由的层级关系。 动态加载指的是根据需要动态加载路由组件,而不是一次性加载所有路由组件。这样可以减少页面加载时间,提高应用性能。 在Vue Router中,可以使用懒加载来实现动态加载路由组件。懒加载使用webpack的code splitting功能,将路由组件分割成独立的文件,当访问到对应的路由时再加载该路由对应的组件。 通过使用懒加载,可以实现多级路由的动态加载。只有当访问到某个路由时,才会加载该路由对应的组件。这样可以提高应用的加载速度,避免一次性加载大量组件导致的性能问题。 需要注意的是,在配置路由时,需要将需要懒加载的路由组件使用`import()`语法动态导入,同时通过`resolve`函数进行异步加载。这样就可以实现多级路由的动态加载。 总结起来,Vue Router可以通过嵌套路由实现多级路由的层级关系,通过懒加载实现路由组件动态加载。这样可以提高应用的性能,同时减少页面加载时间。 ### 回答2: Vue Router 多级路由动态加载是指在Vue项目中,用于实现通过路由跳转来动态加载多级组件的功能。 首先,在Vue项目中,我们可以使用Vue Router来管理路由。Vue RouterVue.js官方提供的路由管理插件,它可以让我们在单页面应用(SPA)中进行页面间的跳转和管理。 要实现多级路由动态加载,我们需要使用Vue Router的懒加载功能。懒加载是指在需要用到某个组件时才加载对应的组件代码,而不是一开始就将所有组件的代码都加载进来。 首先,在路由配置中,我们可以使用Vue Router提供的`component`选项来指定某个路由所对应的组件。而在多级路由动态加载中,我们可以将组件的配置设置为一个返回组件的函数。 例如,我们可以在路由配置中定义如下的路由: ``` const routes = [ { path: '/parent', component: () => import('./components/Parent.vue'), children: [ { path: 'child', component: () => import('./components/Child.vue') } ] } ] ``` 在上述配置中,`component`选项指定了`Parent`组件,而`children`选项定义了`Parent`组件下的子路由,其中子路由`child`的组件通过懒加载的方式动态加载。 当访问`/parent/child`这个路由时,Vue Router会根据配置动态加载`Parent`组件和`Child`组件的代码,并渲染到对应的路由视图中。 这样,我们就实现了多级路由动态加载的功能。通过懒加载的方式,可以有效减少初始加载的资源,并提升页面的加载速度和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摩登开发者Oliver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值