vue路由懶加載

vue的路由懶加載

咱們能夠把不一樣路由對應的組件分割成不一樣的代碼塊,而後當路由被訪問的時候才加載對應組件。javascript

  1. component能夠是一個箭頭函數,咱們能夠使用動態 import語法來定義代碼分塊點;
  2. 若是想在network裏面看到動態加載的組件名字,能夠加webpackChunkName;
  3. 同時要在webpack.base.conf.js裏面的output裏面的filename下面加上chunkFileName

代碼html

// 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的配置vue

webpack.base.conf.js裏面添加 chunkFilename: '[name].js'java

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。這就是路由懶加載的簡單使用。webpack

其餘

在main.js裏面項目的入口咱們能夠使用template的語法,也能夠使用render函數web

new Vue({
  el: '#app',
  router,
  components: { App },

  /*
  * 這裏使用的template的語法
  * 也能夠使用render函數,直接return一個html結構
  */
  // template: '<App/>'
  render() {

    return (
      <div>
        <App></App>
      </div>
    )
  }

  
})
相關文章
相關標籤/搜索