本篇文章主要介绍了vue路由懒加载的实现方法,现在分享给大家,也给大家做个参考。
本文介绍了vue的路由懒加载,分享给大家,具体如下:
我们可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。
component可以是一个箭头函数,我们可以使用动态 import语法来定义代码分块点;
如果想在network里面看到动态加载的组件名字,可以加webpackchunkname;
同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkfilename
代码
// router里面的index.js
import 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(/* webpackchunkname: 'home' */'@/pages/homes')
},
{
path: '/todos',
name: 'todos',
component: () => import(/* webpackchunkname: 'todo' */'@/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 (
<p>
<app></app>
</p>
)
}
})
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
jquery实现的上传图片本地预览效果简单示例
javascript面试出现频繁的一些易错点整理
vue axios请求拦截实例代码
以上就是vue路由懒加载的实现方法的详细内容。