最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue+webpack實現(xiàn)異步組件加載的方法

 更新時間:2018年02月03日 15:35:24   作者:weixin_36094484  
下面小編就為大家分享一篇vue+webpack實現(xiàn)異步組件加載的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

8.9更新:之前想搬遷到csdn的時候由于邀請碼問題遲遲沒把博客轉(zhuǎn)過來,所以跑去博客園了,今天發(fā)現(xiàn)csdn已經(jīng)幫我把文章搬過來,有必要修正一下這篇文章。

寫這篇文章的時候因為剛接觸vue,所以搗鼓的時候有些迷糊。

----------------/*以下可以跳過*/-----------------

本來很簡單的事情折騰好久。

1.vue文檔只給出了Vue.component('comp_name',function(resolve,reject){})在回調(diào)里ajax加載組件定義內(nèi)容的例子,但現(xiàn)在習(xí)慣.vue文件寫組件,在點擊路由獲取.vue的時候怎么弄呢?

2.webpack的coding-split支持commonjs/amd語法,即有不同的實現(xiàn)。網(wǎng)上查了n多案例亂七八糟的,最后確定兩種寫法

commonjs語法:const setting = resolve => require.ensure([], ()=> resolve(require('./components/setting.vue')),'setting');

文檔的寫法:resolve =>require(['./components/setting.vue')],resolve);//懶加載

當(dāng)時我是結(jié)合了路由一起練習(xí),用的第一種,在github上看到的,require.ensure是webpack的語法,在打包的時候?qū)equire.ensure部分指定的代碼切割出來打包在另一個chunk上,webpack.config.js里面加上chunkFileName項即可。require.ensure的三個參數(shù)分別是:依賴的url,回調(diào),自定義的chunk的名字。

其實,code split本質(zhì)上就是,將你require的模塊單獨出來另外打包,等用到的時候再由瀏覽器發(fā)起異步獲取,并通過scriptdom的形式插入到head中,這是它的底層實現(xiàn)。我自己嘗試的時候,每獲取一次異步組件,head中都會插入兩個標(biāo)簽,一個script,yigestyle,因為.vue文件最終會解析成html,css和js。

PS:其實webpack官網(wǎng)的示例代碼并沒有resolve=>這種寫法,直接在函數(shù)里require.ensure就是了,一開始有點疑惑,網(wǎng)上找不到講解,自己研究發(fā)現(xiàn)require.ensure這個函數(shù),webpack打包編譯之后

是一個_webpack_require_.e的函數(shù),其本身是一個一個thenable實例,require.ensure的回調(diào)放到_webpack_require_.e.then(fn)里面,這下子就很明顯了,webpack的這個語法本身應(yīng)該是一個promise實例,只是上面獲取vue組件的寫法里,因為require.ensure是封裝好的語法,只好把resolve傳入其父函數(shù)中,在require.ensure的回調(diào)里通過作用域鏈獲取并調(diào)用。這也揭露了,resolve函數(shù)不一定要在promise的函數(shù)參數(shù)中,其出現(xiàn)位置可以靈活設(shè)置,在阮一峰老師的ES6入門里提到過,resolve函數(shù)是js引擎能提供的,不需要自己部署。

------------------/*以上可跳過*/------------------

首先,異步組件的使用沒剛接觸時以為的那么復(fù)雜。

1.如果套用官網(wǎng)的方式是可以的:

HTML:

<input type="button" @click="showchild" value="show"> //點擊按鈕后,show為真,先獲取child組件,再渲染div內(nèi)容
<div id="contain" v-if="show">
 <child></child>
 </div>

JS:

//...
data () {
  return {
   msg: 'Welcome to Your Vue.js App',
   show:false
  }
 },
 methods: {
  showchild:function(){
   this.show=true;
   }
 },
 components: {
   'child': function(resolve) {
    require(['./components/child.vue'], resolve);
 }

*注意:加載異步組件的時候,組件名后邊的.vue不要忽略。

這個例子應(yīng)該比較直觀了。點擊按鈕之后改變了變量show的布爾值為真,由于child.vue是異步組件,所以會先ajax獲取組件然后渲染。

在很多情況下異步組件會配合vue-router使用來切換視圖,其實這時候用哪種語法的都可以。

以上這篇vue+webpack實現(xiàn)異步組件加載的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3如何解決路由緩存問題(響應(yīng)路由參數(shù)的變化)

    Vue3如何解決路由緩存問題(響應(yīng)路由參數(shù)的變化)

    這篇文章主要介紹了Vue3如何解決路由緩存問題(響應(yīng)路由參數(shù)的變化),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解為什么Vue中不要用index作為key(diff算法)

    詳解為什么Vue中不要用index作為key(diff算法)

    這篇文章主要介紹了詳解為什么Vue中不要用index作為key(diff算法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • vue el-form-item如何添加icon和tooltip

    vue el-form-item如何添加icon和tooltip

    這篇文章主要介紹了vue el-form-item如何添加icon和tooltip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue項目支付功能代碼詳解

    vue項目支付功能代碼詳解

    這篇文章主要介紹了vue項目支付功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Vue3中ref的用法舉例總結(jié)(避免混淆)

    Vue3中ref的用法舉例總結(jié)(避免混淆)

    這篇文章主要給大家介紹了關(guān)于Vue3中ref的用法舉例總結(jié)的相關(guān)資料,ref()接受一個內(nèi)部值,返回一個響應(yīng)式的可更改的ref對象,此對象只有一個指向其內(nèi)部值的屬性.value,需要的朋友可以參考下
    2023-10-10
  • 使用Vue+MySQL實現(xiàn)登錄注冊的實戰(zhàn)案例

    使用Vue+MySQL實現(xiàn)登錄注冊的實戰(zhàn)案例

    第一次用Vue+MySQL實現(xiàn)注冊登錄功能,就已經(jīng)踩了很多坑,下面這篇文章主要給大家介紹了關(guān)于使用Vue+MySQL實現(xiàn)登錄注冊案例的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • vue中下載文件的方法示例詳解

    vue中下載文件的方法示例詳解

    這篇文章主要介紹了vue中下載文件的方法,通過實例代碼講解了下載后端返回文件和下載本地文件,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Vue中的循環(huán)及修改差值表達式的方法

    Vue中的循環(huán)及修改差值表達式的方法

    這篇文章主要介紹了Vue中的循環(huán)及修改差值表達式的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 詳解Vue源碼中一些util函數(shù)

    詳解Vue源碼中一些util函數(shù)

    這篇文章主要介紹了Vue源碼中一些util函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue首評加載速度及白屏?xí)r間優(yōu)化詳解

    Vue首評加載速度及白屏?xí)r間優(yōu)化詳解

    這篇文章主要介紹了vue項目優(yōu)化首評加載速度,以及白屏?xí)r間過久的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09

最新評論

寻甸| 西安市| 定边县| 固始县| 军事| 慈溪市| 长寿区| 沙洋县| 剑阁县| 许昌市| 根河市| 九龙城区| 龙海市| 新巴尔虎右旗| 漳浦县| 辽宁省| 南郑县| 怀宁县| 巴楚县| 饶平县| 铁岭市| 荣成市| 广宗县| 咸宁市| 吴堡县| 抚顺市| 西峡县| 疏附县| 明水县| 岳阳县| 彰化市| 三亚市| 昌江| 旌德县| 大埔县| 浙江省| 潮安县| 饶平县| 神木县| 师宗县| 香格里拉县|