webpack的 require.ensure 使用

// 批量导入.md文件

import GROUPS from '/';

GROUPS.map(item => { return item.component = LOAD_DOCS_MAP["zh-CN"]('zh-CN', item.path) })

const LOAD_DOCS_MAP = {
    'zh-CN': (lang, path) => {
        return r => require.ensure([], () =>
            r(require(`./docs/zh-CN${path}.md`)),
            'zh-CN');
    }
};

const introduction = [{
        path: '/',
        redirect: '/installation'
    },
    {
        path: '/changelog',
        name: 'changelog',
        component: changelog
    },
    {
        path: '/installation',
        name: 'installation',
        component: installation
    },
    {
        path: '/quickstart',
        name: 'quickstart',
        component: quickstart
    },
    // {
    //   path: '/button',
    //   name: 'button',
    //   component: LOAD_DOCS_MAP["zh-CN"]('zh-CN', '/button')
    // },
    // {
    //   path: '/input',
    //   name: 'input',
    //   component: LOAD_DOCS_MAP["zh-CN"]('zh-CN', '/input')
    // }
]
const routes = GROUPS.concat(introduction);

export default new VueRouter({
    mode: 'hash',
    base: process.env.BASE_URL,
    routes,
});

好处就是,不用在 introduction  里写出所有的对象了!!

其实原理就是:

const makeIndex = r => require.ensure([], () => r(require('@views/make/index')), 'make')

只不过现在我们都用 es6的 import() 方式 异步加载路由:

const notFound = () => import('@views/common/404')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值