本文主要和大家介紹了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> ) } })
相關推薦:
以上是vue路由懶載入實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!