vue-router懶加載的3種方式匯總
未使用懶加載
import Vue from 'vue'; import Router from 'vue-router'; import HelloWorld from '@components/HelloWorld'; Vue.use(Router); export default new Router({ routes:[ {path:'./', name:'HelloWorld', component:HelloWorld } ] })
vue異步組件
component:resolve=>{reuqire([‘需要加載的路由地址’]),resolve)
import Vue from 'vue'; import Router from 'vue-router'; const HelloWorld=resolve=>{require(["@/components/HelloWorld"],resolve} Vue.use(Router); export default new Router({ routes:[ {path:'./', name:'HelloWorld', component:HelloWorld } ] })
ES6的import()
import Vue from 'vue'; import Router from 'vue-router'; import HelloWorld=()=>import('@/components/HelloWorld'); Vue.use('Router') export default new Router({ routes:[{ {path:'./', name:'HelloWorld', component:HelloWorld } }] })
webpack的require.ensure()
require.ensure可實現按需加載資源,包括js,css等。他會給裡面require的文件單獨打包,不會和主文件打包在一起。
第一個參數是數組,表明第二個參數裡需要依賴的模塊,這些會提前加載。
第二個是回調函數,在這個回調函數裡面require的文件會被單獨打包成一個chunk,不會和主文件打包在一起,這樣就生成瞭兩個chunk,第一次加載時隻加載主文件。
第三個參數是錯誤回調。
第四個參數是單獨打包的chunk的文件名
import Vue from 'vue'; import Router from 'vue-router'; const HelloWorld=resolve=>{ require.ensure(['@/components/HelloWorld'],()=>{ resolve(require('@/components/HelloWorld')) }) } Vue.use('Router') export default new Router({ routes:[{ {path:'./', name:'HelloWorld', component:HelloWorld } }] })
總結
到此這篇關於vue-router懶加載的3種方式的文章就介紹到這瞭,更多相關vue-router懶加載內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!