gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

vue為啥要使用異步組件

使用異步組件的原因:1、異步組件可以減少打包的結果,會將異步組件分開打包,會采用異步的方式加載組件,可以有效的解決一個組件過大的問題。2、異步組件的核心可以給組件定義變成一個函數,函數里面可以用import語法,實現文件的分割加載。

vue為啥要使用異步組件

前端(vue)入門到精通課程,老師在線輔導:聯系老師
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

本教程操作環境:windows7系統、vue3版,DELL G3電腦。

使用異步組件的原因

1.異步組件可以減少打包的結果。會將異步組件分開打包,會采用異步的方式加載組件,可以有效的解決一個組件過大的問題。不使用異步組件,如果組件功能比較多打包出來的結果就會變大。

2.異步組件的核心可以給組件定義變成一個函數,函數里面可以用import語法,實現文件的分割加載,import語法是webpack提供的,采用的就是jsonp。(學習視頻分享:vuejs入門教程、編程基礎視頻)

components:{   VideoPlay:(resolve)=>import("../components/VideoPlay") }   components:{   VideoPlay(resolve) {     require(["../components/VideoPlay"], resolve)   } }   或者使用回調函數
登錄后復制

原理

在createComponent方法中,會有相應的異步組件處理,首先定義一個asyncFactory變量,然后進行判斷,如果組件是一個函數,然后會去調resolveAsyncComponent方法,然后將賦值在asyncFactory上的函數傳進去,會讓asyncFactory馬上執行,執行的時候并不會馬上返回結果,因為他是異步的,返回的是一個promise,這時候這個值就是undefined,然后就會先渲染一個異步組件的占位,空虛擬節點。如果加載完之后會調factory函數傳入resolve和reject兩個參數,執行后返回一個成功的回調和失敗的回調,promise成功了就會調resolve,resolve中就會調取forceRender方法強制更新視圖重新渲染,forceRender中調取的就是$forceUpdate,同時把結果放到factory.resolved上,如果強制刷新的時候就會再次走resolveAsyncComponent方法,這時候有個判斷,如果有成功的結果就把結果直接放回去,這時候resolveAsyncComponent返回的就不是undefined了,就會接的創建組件,初始化組件,渲染組件。

源碼

src/core/vdom/create-component.js

1.createComponent方法

export function createComponent (   Ctor: Class<Component> | Function | Object | void,   data: ?VNodeData,   context: Component,   children: ?Array<VNode>,   tag?: string ): VNode | Array<VNode> | void {   let asyncFactory   if (isUndef(Ctor.cid)) { // 看組件是否是一個函數     asyncFactory = Ctor // 異步組件一定是一個函數 新版本提供了對象的寫法     Ctor = resolveAsyncComponent(asyncFactory, baseCtor) //默認調用此函數時返回undefiend     // 第二次渲染時Ctor不為undefined     if (Ctor === undefined) {       //返回async組件的占位符節點       //作為注釋節點,但保留該節點的所有原始信息       //該信息將用于異步服務器渲染和水合。       return createAsyncPlaceholder(         asyncFactory,         data,         context,         children,         tag       )     }   } }
登錄后復制

2.resolveAsyncComponent方法

export function resolveAsyncComponent (   factory: Function,   baseCtor: Class<Component> ): Class<Component> | void {   // 如果有錯誤就返回錯誤結果   if (isTrue(factory.error) && isDef(factory.errorComp)) {     return factory.errorComp   }   // 再次渲染時可以拿到獲取的最新組件   // 如果有成功的結果,就直接返回去   if (isDef(factory.resolved)) {     return factory.resolved   }    if (owner && !isDef(factory.owners)) {     // forceRender 強制刷新渲染     const forceRender = (renderCompleted: boolean) => {       for (let i = 0, l = owners.length; i < l; i++) {         (owners[i]: any).$forceUpdate() // 執行$forceUpdate       }     }     // 成功     const resolve = once((res: Object | Class<Component>) => {       factory.resolved = ensureCtor(res, baseCtor)       if (!sync) {         forceRender(true) // 執行強制更新視圖重新渲染方法       } else {         owners.length = 0       }     })     // 失敗     const reject = once(reason => {       if (isDef(factory.errorComp)) {         factory.error = true         forceRender(true)       }     })      // 執行factory 將resolve方法和reject方法傳入     const res = factory(resolve, reject)      sync = false     return factory.loading ? factory.loadingComp : factory.resolved // 返回結果   } }
登錄后復制

3.createAsyncPlaceholder 方法

// 創建一個異步組件的占位,空虛擬節點   也就是一個注釋<!--> export function createAsyncPlaceholder (   factory: Function,   data: ?VNodeData,   context: Component,   children: ?Array<VNode>,   tag: ?string ): VNode {   const node = createEmptyVNode()   node.asyncFactory = factory   node.asyncMeta = { data, context, children, tag }   return node }
登錄后復制

(學習視頻分享:vuejs入門教程、編程基礎視頻)

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
国产主播自拍av| 中文字幕成人免费视频| 日韩av加勒比| 午夜大片在线观看| 日本黄色三级大片| 亚洲不卡视频在线| 裸体裸乳免费看| 欧美午夜性视频| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 天天干天天草天天| 亚洲黄色av网址| av免费中文字幕| 亚洲AV无码成人精品一区| 久久在线中文字幕| 国产一二三区av| 91插插插插插插插插| 免费黄色一级网站| 欧美一区二区三区综合| 任你操这里只有精品| 欧美深夜福利视频| 91xxx视频| 成人小视频在线观看免费| 免费看a级黄色片| 黄色激情在线视频| 国产午夜大地久久| 中国老女人av| 丰满的少妇愉情hd高清果冻传媒| 亚洲精品久久久中文字幕| 在线不卡一区二区三区| 激情五月六月婷婷| 欧美 国产 日本| 在线播放免费视频| 3d动漫一区二区三区| 久久久久免费精品| 日韩人妻精品一区二区三区| 色哟哟免费网站| 国产xxxxx在线观看| 三级av免费观看| 国产嫩草在线观看| 日本美女爱爱视频| 国产a级片免费观看| 在线无限看免费粉色视频| 日韩xxxx视频| 一级 黄 色 片一| 午夜一级免费视频| 欧美牲交a欧美牲交aⅴ免费真 | 天天插天天操天天射| 一本二本三本亚洲码| www.爱色av.com| 国产91在线视频观看| 国产性生活一级片| 日批视频在线免费看| 男女爱爱视频网站| 182午夜视频| 午夜免费高清视频| 37pao成人国产永久免费视频| 无码毛片aaa在线| 日韩在线不卡一区| 男女男精品视频站| 97视频在线免费播放| 欧美亚洲色图视频| 91看片淫黄大片91| 网站在线你懂的| 奇米视频7777| 91制片厂毛片| 香港日本韩国三级网站| 免费涩涩18网站入口| 狠狠热免费视频| 91av在线免费播放| wwwxxx黄色片| 天堂中文视频在线| 国产色视频在线播放| 精品999在线| 黄色片视频在线| 国产三级生活片| 久久久一二三四| 国产精品亚洲天堂| 亚洲黄色网址在线观看| 黄色小视频大全| 精品久久久久久无码中文野结衣| 青青草综合在线| 尤物av无码色av无码| 国产免费毛卡片| 韩国中文字幕av| 天天干天天色天天干| 免费日韩在线观看| 国产精品裸体瑜伽视频| 日韩手机在线观看视频| 欧美成人三级在线播放| 手机在线视频你懂的| www.av蜜桃| 狠狠热免费视频| ijzzijzzij亚洲大全| 18岁网站在线观看| 我要看一级黄色大片| 日本久久高清视频| www国产黄色| 色婷婷综合在线观看| 国产av人人夜夜澡人人爽麻豆| 91黄色小网站| 天天操天天干天天玩| 韩国日本在线视频| 日韩精品第1页| 成人午夜激情av| 国产高清不卡无码视频| av免费网站观看| 成人在线免费观看视频网站| 久草精品在线播放| 国产成人精品免费看在线播放| 国产情侣第一页| 91欧美视频在线| 欧美日韩精品在线一区二区 | 日韩久久久久久久久久久久| 亚洲色图久久久| 久久久久久久久久久视频| 日韩在线一区视频| 日本www高清视频| 免费在线观看亚洲视频| 国产一级片中文字幕| 中文字幕视频在线免费观看| 91成人综合网| av影院在线播放| 香蕉视频xxx| 三区视频在线观看| 一区二区三区欧美精品| 少妇性l交大片| 国产成人久久婷婷精品流白浆| 久久成人福利视频| 中文精品无码中文字幕无码专区| 99九九精品视频| 亚洲av无日韩毛片久久| 天堂在线资源视频| 国产精品wwwww| 国产成人精品无码播放| 亚洲人成色77777| 欧美一级片中文字幕 | 久久精品亚洲天堂| 国产三级三级看三级| 精品久久久久久久免费人妻| 国产精品专区在线| aa在线免费观看| 另类小说第一页| 国产精品嫩草影院8vv8| 在线观看日本www| 日韩人妻精品一区二区三区| 国产精品亚洲天堂| 国产成人艳妇aa视频在线| 国产资源在线免费观看| 久久成人免费观看| 日韩福利视频在线| 三日本三级少妇三级99| 久久久久久久高清| 国产美女作爱全过程免费视频| 黄色成人在线免费观看| 免费看的黄色大片| 成人性生生活性生交12| 奇米影视四色在线| 免费人成在线观看视频播放| 日韩精品久久一区二区| 欧美亚洲日本一区二区三区 | 国产手机视频在线观看| 久久男人资源站| 国产女女做受ⅹxx高潮| 日韩中文字幕a| av女优在线播放| 国产三级三级三级看三级| 亚洲午夜精品一区| 无码 制服 丝袜 国产 另类| 成年人小视频网站| 三级在线免费观看| 五月婷婷丁香综合网| 中文字幕乱码免费| 我看黄色一级片| 男人j进女人j| 亚洲综合欧美激情| 国产中文字幕乱人伦在线观看| 免费黄色福利视频| www婷婷av久久久影片| 99热一区二区| 国产三区在线视频| 拔插拔插海外华人免费| 在线免费观看av网| 91视频免费版污| 丰满的少妇愉情hd高清果冻传媒| 激情五月俺来也| 成年人小视频网站| 久久久一本二本三本| 国产xxxx振车| a级网站在线观看| 九九九九九伊人| 超碰在线播放91| 人妻熟女一二三区夜夜爱| 99热久久这里只有精品| 久久观看最新视频| 亚洲美女自拍偷拍| 久久精品一卡二卡| 在线观看av免费观看| 中文字幕66页| 视频免费1区二区三区| 日韩爱爱小视频|