Rumah > hujung hadapan web > tutorial js > vue路由懒加载实例详解

vue路由懒加载实例详解

小云云
Lepaskan: 2018-03-13 09:28:53
asal
3278 orang telah melayarinya

本文主要和大家介绍了vue路由懒加载的实现方法,我们可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。希望能帮助到大家。

  1. component可以是一个箭头函数,我们可以使用动态 import语法来定义代码分块点;

  2. 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName;

  3. 同时要在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')
  }
 ]
})
Salin selepas log masuk

注意 上面的@代表当前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
}
Salin selepas log masuk

分析

创建了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: &#39;<App/>&#39;
 render() {

  return (
   <p>
    <App></App>
   </p>
  )
 } 
})
Salin selepas log masuk

相关推荐:

jquery的懒加载的原理及实现

vue中使用图片懒加载vue-lazyload插件

关于Vue代码分割懒加载

Atas ialah kandungan terperinci vue路由懒加载实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan