2019-02-27 vue組件基礎(chǔ)篇7

  • 異步組件

在大型應(yīng)用中,我們可能需要將應(yīng)用分割成小一些的代碼塊,并且只在需要的時(shí)候才從服務(wù)器加載一個(gè)模塊。

Vue.js只在組件需要渲染時(shí)觸發(fā)工廠函數(shù),并且把結(jié)果緩存起來,用于后面的再次渲染。
工廠函數(shù)接收一個(gè)resolve回調(diào),在收到從服務(wù)器下載的組件定義時(shí)調(diào)用。也可以調(diào)用reject(reason)指示加載失敗。這里setTimeout只是為了演示異步,具體的下載邏輯可以自己決定,比如把組件配置寫成一個(gè)對象配置,通過Ajax來請求,然后調(diào)用resolve傳入配置選項(xiàng)。

所謂工廠函數(shù),就是指這些內(nèi)建函數(shù)都是類對象,當(dāng)你調(diào)用他們時(shí),實(shí)際上是創(chuàng)建了一個(gè)類實(shí)例。
1.它是一個(gè)函數(shù)
2.它用來創(chuàng)建對象
3.它像工廠一樣,“生產(chǎn)”出來的函數(shù)都是“標(biāo)準(zhǔn)件”擁有同樣的屬性

<div id="app">
        <child-component></child-component>
</div>
<script>
        Vue.component('child-component', function(resolve, reject) {
            window.setTimeout(function () {
                resolve({
                    template: '<div>我是異步渲染的</div>'
                })
            }, 2000);
        })

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

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,666評論 1 32
  • 什么是組件? 組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝...
    youins閱讀 9,708評論 0 13
  • 概述 在我們平時(shí)的開發(fā)工作中,為了減少首屏代碼體積,往往會把一些非首屏的組件設(shè)計(jì)成異步組件,按需加載。Vue 也原...
    LoveBugs_King閱讀 1,998評論 0 1
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,178評論 0 29
  • 過人的日子,發(fā)現(xiàn)修煉的考場能清晰的看見自己的習(xí)性。 發(fā)現(xiàn)自己在安靜的享受著干活,沒有抱怨沒有看別人,沒有比較,只是...
    薛貴敏閱讀 212評論 0 0

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