vue路由懒加载的实现方法

时间:2021-05-26

本文介绍了vue的路由懒加载,分享给大家,具体如下:

我们可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。

  • component可以是一个箭头函数,我们可以使用动态 import语法来定义代码分块点;
  • 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName;
  • 同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName
  • 代码

    // router里面的index.jsimport Vue from 'vue'import Router from 'vue-router'Vue.use(Router)export default new Router({ routes: [ { path: '/', name: 'home', /* * 使用动态组件,component可以是一个箭头函数 * @表示src目录 * 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName,同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName * network里面动态加载模块名称 */ component: () => import('@/pages/Homes') }, { path: '/todos', name: 'Todos', component: () => import('@/pages/Todos') } ]})

    注意 上面的@代表当前src目录,具体可以去参考webpack的配置

    webpack.base.conf.js里面添加 chunkFilename: '[name].js'output: { path: config.build.assetsRoot, filename: '[name].js', // 需要配置的地方 chunkFilename: '[name].js', publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath}

    分析

    创建了home和todos两个组件使用了路由懒加载,配置好之后我们执行npm run dev来运行项目,打开network之后刷新一下,我们会发现加载了home.js,我们会发现和上面定义的webpackChunkName名字一样,同时点todos会加载todo.js。这就是路由懒加载的简单使用。

    其他

    在main.js里面项目的入口我们可以使用template的语法,也可以使用render函数

    new Vue({ el: '#app', router, components: { App }, /* * 这里使用的template的语法 * 也可以使用render函数,直接return一个html结构 */ // template: '<App/>' render() { return ( <div> <App></App> </div> ) } })

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章