vue中的懶加載和按需加載

懶加載

(1)定義:懶加載也叫延遲加載,即在需要的時(shí)候進(jìn)行加載,隨用隨載。

(2)異步加載的三種表示方法:

1.resolve => require([URL], resolve),支持性好

2.() => system.import(URL) , webpack2官網(wǎng)上已經(jīng)聲明將逐漸廢除,不推薦使用

3.() => import(URL), webpack2官網(wǎng)推薦使用,屬于es7范疇,需要配合babel的syntax-dynamic-import插件使用。

(3)vue中懶加載的流程:


(4)Vue中懶加載的各種使用地方:

1.路由懶加載:

export default new Router({

routes:[

{

path: '/my',

name: 'my',

//懶加載

component: resolve => require(['../page/my/my.vue'], resolve),

},

]

})

2.組件懶加載:

components: {

historyTab:resolve => {

require(['../../component/historyTab/historyTab.vue'],resolve)

},

},

3.全局懶加載:

Vue.component('mideaHeader', () => {

System.import('./component/header/header.vue')

})

按需加載

(1)按需加載原因:首屏優(yōu)化,第三方組件庫依賴過大,會(huì)給首屏加載帶來很大的壓力,一般解決方式是按需求引入組件。

(2)element-ui按需加載

element-ui根據(jù)官方說明,先需要引入babel-plugin-component插件,做相關(guān)配置,然后直接在組件目錄,注冊(cè)全局組件。

1.安裝babel-plugin-component插件:

npm install babel-plugin-component –D

2.配置插件,將.babelrc修改為:

{

"presets": [

["es2015", { "modules": false }]

],

"plugins": [["component", [

{

"libraryName": "element-ui",

"styleLibraryName": "theme-default"

}]]]}

3.引入部分組件,比如Button和Select,那么需要在main.js中寫入以下內(nèi)容:

import Vue from 'vue'

import { Button, Select } from 'element-ui'

import App from './App.vue'

Vue.component(Button.name, Button)

Vue.component(Select.name, Select)

/*或?qū)憺?/p>

*Vue.use(Button)

*Vue.use(Select)

*/

(3)iView按需求加載:

import Checkbox from'iview/src/components/checkbox';

特別提醒:

1.按需引用仍然需要導(dǎo)入樣式,即在main.js或根組件執(zhí)行import 'iview/dist/styles/iview.css';

2.按需引用是直接引用的組件庫源代碼,需要借助babel進(jìn)行編譯,以webpack為例:

module: {

rules: [

{test: /iview.src.*?js$/, loader: 'babel' },

{test: /\.js$/, loader: 'babel', exclude: /node_modules/ }

]

}

參考鏈接:http://www.jb51.net/article/109865.htm

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來源:github.com Vue.js開源項(xiàng)目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei閱讀 11,915評(píng)論 1 159
  • UI組件element ★11612 - 餓了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于...
    董董董董董董董董董大笨蛋閱讀 8,795評(píng)論 6 123
  • 姓名:劉衛(wèi)師: 公司:寧波大發(fā)化纖有限公司 《六項(xiàng)精進(jìn)》289期反省二組紀(jì)律委員 【日精進(jìn)打卡第78天】 【知~學(xué)...
    劉偉師閱讀 185評(píng)論 0 0
  • 單槍匹馬你別怕,一腔孤勇又何妨,請(qǐng)記住,這一路你可以哭,但不能慫。 文/泥璐 -01- 前幾天,在微博上看到這樣一...
    泥璐閱讀 792評(píng)論 27 13
  • 今天你是怎么度過2016年最后一天的? 我計(jì)劃要去做一些值得留念的事情,可是卻沒有做。早上早起,然后回老家,在老家...
    worldlyf閱讀 238評(píng)論 0 0

友情鏈接更多精彩內(nèi)容