国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Vue中通過Vue.extend動態(tài)創(chuàng)建實(shí)例

seanHai / 655人閱讀

摘要:中通過動態(tài)創(chuàng)建實(shí)例在中,如果我們想要動態(tài)地來控制一個組件的顯示和隱藏,比如通過點(diǎn)擊按鈕顯示一個對話框或者彈出一條信息。通過創(chuàng)建構(gòu)造器這個構(gòu)造器用于需要顯示是創(chuàng)建實(shí)例。

Vue中通過Vue.extend動態(tài)創(chuàng)建實(shí)例

在Vue中,如果我們想要動態(tài)地來控制一個組件的顯示和隱藏,比如通過點(diǎn)擊按鈕顯示一個對話框或者彈出一條信息。我們通常會提前寫好這個組件,然后通過v-if = “show”來控制它的顯示隱藏。如下所示:

    
這是一條通過按鈕控制顯示隱藏的信息

另外還有一種實(shí)現(xiàn)方法就是通過Vue.extend來動態(tài)地創(chuàng)建實(shí)例,在想要進(jìn)行顯示的時候創(chuàng)建實(shí)例。
在需要隱藏的時候刪除這個實(shí)例。

通過Vue.extend創(chuàng)建構(gòu)造器,這個構(gòu)造器用于需要顯示是創(chuàng)建實(shí)例。

const Constructor = Vue.extend({
    template:` {{message}} `,
    data(){
        return {
            message:"這是一條通過按鈕控制顯示隱藏的信息"
        }
    }
})

需要顯示時創(chuàng)建實(shí)例

showHandle(){
    const MessageCom = this.MessageCom = new Constructor({
        propsData:{
            show:true
        }
    }).$mount();

    this.$refs.message.appendChild(MessageCom.$el);
}

需要隱藏時刪除實(shí)例

hiddenHandle(){
    this.MessageCom.$el.remove()
    this.MessageCom.$destroy()
    this.MessageCom = null
}

這樣的話就同樣實(shí)現(xiàn)了一個顯示,隱藏效果。

使用場景

通過上面的分析,我們發(fā)現(xiàn)這種操作完全沒有必要,相比于通過屬性來控制顯示和隱藏;創(chuàng)建實(shí)例顯得更加麻煩。
但是它同樣具有一定的使用場景。比如:單元測試時:

單元測試

在進(jìn)行單元測試時,為了實(shí)現(xiàn)在Vue中的測試,我們必須創(chuàng)建一個基于某個組件的實(shí)例,然后才能進(jìn)行測試。
如下所示:

    it("可以設(shè)置icon.", () => {
        const Constructor = Vue.extend(Button)
        const vm = new Constructor({
        propsData: {
            icon: "settings"
        }
        }).$mount()
        const useElement = vm.$el.querySelector("use")
        expect(useElement.getAttribute("xlink:href")).to.equal("#i-settings")
        vm.$destroy()
    })
替代DOM操作

在一些場合下,我們可能需要創(chuàng)建一個div這種,通常的實(shí)現(xiàn)方式如下:

let oDiv = document.createElement();
oDiv.innerHTML = "hello,world";
document.body.appendChild(oDiv);

但是,在Vue中操作DOM是非常不推薦的寫法,這時候我們建議使用Vue.extend來實(shí)現(xiàn)DOM的操作。

      const Constructor = Vue.extend(Toast);
      let oDiv = new Constructor();
      oDiv.$slots.default = [message];
      oDiv.$mount(); //必須使用$mount()進(jìn)行掛載,否則所有的生命周期的函數(shù)都不會執(zhí)行
      document.body.appendChild(oDiv.$el)
總結(jié):

Vue.extend可以用于動態(tài)地創(chuàng)建實(shí)例,在一些場景下可以使用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106707.html

相關(guān)文章

  • Vue.js基本語法的介紹

    摘要:當(dāng)表達(dá)式的值發(fā)生變化時,響應(yīng)應(yīng)用特定的行為到。指的是否重復(fù),對重復(fù)的進(jìn)行服用循環(huán)中,表示數(shù)組第個元素表示對象的樣式綁定樣式也可以根據(jù)中的變量來動態(tài)確定。 介紹 前段時間接觸到一個庫叫做Vue.js, 個人感覺很棒,所以整理了一篇博文做個介紹。Vue讀音/vju:/,和view類似。是一個數(shù)據(jù)驅(qū)動的web界面庫。Vue.js只聚焦于視圖層,可以很容易的和其他庫整合。代碼壓縮后只有24kb...

    Jensen 評論0 收藏0
  • Vue實(shí)例

    摘要:的介紹就直接連接到官網(wǎng)了,官網(wǎng)介紹很詳細(xì)了介紹構(gòu)造函數(shù)在使用之前我們首先需要構(gòu)建實(shí)例以上代碼是通過構(gòu)建了一個實(shí)例,構(gòu)造函數(shù)中是一個對象,上面代碼我用了一個空的對象,對象中可以包含數(shù)據(jù)模板掛載元素方法生命周期鉤子等選項(xiàng)。 使用過一段時間的vue1.0,現(xiàn)在vue已經(jīng)更新了很多版本了,語法在很多地方也有了變化。在此記錄一下重新學(xué)習(xí)的過程以及對vue的一些自己的理解。vue的介紹就直接連接...

    jerryloveemily 評論0 收藏0
  • VUE

    摘要:注意指令前面需要加,對指令傳遞數(shù)據(jù)賦值使用例如約定速成加上,表示自定義指令不要使用駝峰式命名。需要通過方法實(shí)現(xiàn)自定義指令注冊完成。 vue Vue.js 構(gòu)建數(shù)據(jù)驅(qū)動的web界面庫。集中實(shí)現(xiàn)MVVM 的 VM層。容易與其他庫或項(xiàng)目整合 通過盡可能簡單的API實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)綁定和組合的視圖組件核心:相應(yīng)的數(shù)據(jù)綁定系統(tǒng), 數(shù)據(jù)與DOM保持同步數(shù)據(jù)驅(qū)動的視圖,普通的HTML模板中使用特殊的語...

    bergwhite 評論0 收藏0
  • 面試被問到Vue?想進(jìn)一步提升?那就停下來看一下吧

    摘要:兩個對象鍵名沖突時,取組件對象的鍵值對。允許聲明擴(kuò)展另一個組件可以是一個簡單的選項(xiàng)對象或構(gòu)造函數(shù),而無需使用。這主要是為了便于擴(kuò)展單文件組件。 Vue作為最近最炙手可熱的前端框架,其簡單的入門方式和功能強(qiáng)大的API是其優(yōu)點(diǎn)。而同時因?yàn)槠銩PI的多樣性和豐富性,所以他的很多開發(fā)方式就和一切基于組件的React不同,如果沒有對Vue的API(有一些甚至文檔都沒提到)有一個全面的了解,那么在...

    andot 評論0 收藏0
  • Vue.extend用法(主要用于需要 動態(tài)渲染的組件,或者類似于window.alert() 提示

    摘要:一簡單的使用主要用于需要動態(tài)渲染的組件,或者類似于提示組件注意創(chuàng)建的是一個組件構(gòu)造器,而不是一個具體的組件實(shí)例屬于的全局,在實(shí)際業(yè)務(wù)開發(fā)中我們很少使用,因?yàn)橄啾瘸S玫膶懛ㄊ褂貌襟E要更加繁瑣一些。 最近在重構(gòu)公司的項(xiàng)目,有些組件想要封裝的更靈活,例如toast、loading、messageBox等彈窗組件,模仿了mint-ui封裝此類組件的方式封裝了自己的彈窗組件; mint-UI的t...

    masturbator 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<