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

深入理解Vue生命周期、手動掛載及掛載子組件

 更新時間:2017年09月27日 15:14:19   作者:Fairy-H  
本篇文章主要介紹了深入理解Vue生命周期和手動掛載,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了Vue生命周期和手動掛載,分享給大家,具體如下:

1、vue的生命周期:

2、$mount()手動掛載

當Vue實例沒有el屬性時,則該實例尚沒有掛載到某個dom中;

假如需要延遲掛載,可以在之后手動調(diào)用vm.$mount()方法來掛載。

例如:

方法一:

<div id="app"> 
 {{name}} 
</div> 
<button onclick="test()">掛載</button> 
<script> 
 var obj= {name: '張三'} 
 var vm = new Vue({ 
  data: obj
 }) 
 function test() { 
  vm.$mount("#app"); 
 } 

方法二:

Vue.extend()用以創(chuàng)建沒有掛載的的子類,可以使用該子累創(chuàng)建多個實例

var app= Vue.extend({ 
 template: '<p>{{firstName}} {{lastName}}</p>', 
   data: function () { 
    return { 
    firstName: 'Walter', 
    lastName: 'White' 
    } 
    } 
   }) 
 // 創(chuàng)建 app實例,并掛載到一個元素上。 
 new app().$mount('#app') 

下面我們使用自動插入label

手動掛載插件:https://vuefe.cn/api/#Vue-extend

動手寫代碼

1、先移除user-name.vue 里顯示錯誤的label,因為我們要手動插入

<label class="label label-danger">用戶不合法</label>

2、先看一下我們插件validate.js的全部代碼,然后我們再分析

export default{
  install(Vue){

    Vue.prototype.checkUserName = (value) => {
      if(value == ""){
        return true; // 如果沒有填寫,默認為true
      }

      if(/\w{6,20}/.test(value)){
        return true;
      }else{
        return false;
      }
    }

    Vue.prototype.errorLabel = null;
    Vue.prototype.hasError = false;

    Vue.directive("uname",{
      bind(){
        let errorTpl = Vue.extend({
          template:'<label class="label label-danger">用戶不合法</label>'
        });
        // 實例化并掛載
        Vue.errorLabel = (new errorTpl()).$mount().$el;
      },
      update(el,binding,vnode){
        if(/\w{6,20}/.test(el.value)){
          // 驗證通過
          if (Vue.hasError){
            el.parentNode.removeChild(Vue.errorLabel);
            Vue.hasError = !Vue.hasError;
          }
        }else{
          // 驗證沒有通過
          if (!Vue.hasError){
            el.parentNode.appendChild(Vue.errorLabel);
            Vue.hasError = ! Vue.hasError;
          }

        }
      },
    })
  }
}

3、定義了2個prototype

Vue.prototype.errorLabel = null;
Vue.prototype.hasError = false;

errorLabel錯誤提示模板,我們在要bind() 方法中創(chuàng)建,然后掛載到它上面;hasError 是輔助屬性,方便我們用來判斷當前是有錯誤還是沒有錯誤。

4、在update() 方法中,實時監(jiān)聽用戶的輸入,然后移除/添加 錯誤模板

 update(el,binding,vnode){
   if(/\w{6,20}/.test(el.value)){
     // 驗證通過
     if (Vue.hasError){
       el.parentNode.removeChild(Vue.errorLabel);
       Vue.hasError = !Vue.hasError;
     }
   }else{
     // 驗證沒有通過
     if (!Vue.hasError){
       el.parentNode.appendChild(Vue.errorLabel);
       Vue.hasError = ! Vue.hasError;
     }
   }
 },

5、演示效果如下圖


以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue組件間通信六種方式(總結(jié)篇)

    vue組件間通信六種方式(總結(jié)篇)

    組件是 vue.js最強大的功能之一,而組件實例的作用域是相互獨立的,這就意味著不同組件之間的數(shù)據(jù)無法相互引用。這篇文章主要介紹了vue組件間通信六種方式,需要的朋友可以參考下
    2019-05-05
  • vue實現(xiàn)簡單購物車案例

    vue實現(xiàn)簡單購物車案例

    這篇文章主要為大家詳細介紹了vue實現(xiàn)簡單購物車案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Vue項目打包優(yōu)化實踐指南(推薦!)

    Vue項目打包優(yōu)化實踐指南(推薦!)

    如果引入的庫眾多,那么vendor.js文件體積將會相當?shù)拇?影響首開的體驗,這篇文章主要給大家介紹了關(guān)于Vue項目打包優(yōu)化實踐的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • vuecli+AXdownload下載組件封裝?+css3下載懸浮球動畫效果

    vuecli+AXdownload下載組件封裝?+css3下載懸浮球動畫效果

    當觸發(fā)下載功能的時候,會觸發(fā)一個下載動畫,下載懸浮球會自動彈出,并且閃爍提示有新的下載任務(wù)直到下載任務(wù)完場提示,接下來通過本文介紹vuecli+AXdownload下載組件封裝?+css3下載懸浮球動畫效果,需要的朋友可以參考下
    2024-05-05
  • 如何使用Vue進行文件預覽與打印功能

    如何使用Vue進行文件預覽與打印功能

    這篇文章主要給大家介紹了關(guān)于如何使用Vue進行文件預覽與打印功能的相關(guān)資料,這個功能其實也是自己學習到的,做完也有一段時間了,一直想記錄總結(jié)一下,需要的朋友可以參考下
    2023-10-10
  • Vue3實現(xiàn)檢測密碼強度值功能

    Vue3實現(xiàn)檢測密碼強度值功能

    本文將演示如何使用Vue?3實現(xiàn)一個簡單的密碼強度檢測功能,通過實時反饋,幫助用戶創(chuàng)建更安全的密碼,從而提升整體系統(tǒng)的安全性,需要的朋友可以參考下
    2024-06-06
  • Slots Emit和Props穿透組件封裝實現(xiàn)摸魚加鐘

    Slots Emit和Props穿透組件封裝實現(xiàn)摸魚加鐘

    這篇文章主要為大家介紹了Slots Emit和Props穿透組件封裝實現(xiàn)示例詳解,為摸魚加個鐘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • vue使用blob下載文件遇到的問題小結(jié)

    vue使用blob下載文件遇到的問題小結(jié)

    Blob?對象表示一個不可變、原始數(shù)據(jù)的類文件對象,這篇文章主要介紹了vue使用blob下載文件遇到的問題記錄,需要的朋友可以參考下
    2024-02-02
  • Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解

    Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解

    這篇文章主要為大家介紹了Vue3將虛擬節(jié)點渲染到網(wǎng)頁初次渲染詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 淺談vue.watch的觸發(fā)條件是什么

    淺談vue.watch的觸發(fā)條件是什么

    這篇文章主要介紹了淺談vue.watch的觸發(fā)條件是什么?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

伊川县| 临洮县| 洪湖市| 中牟县| 皋兰县| 乐安县| 利津县| 阿图什市| 富顺县| 奎屯市| 抚远县| 宁乡县| 阿荣旗| 鲜城| 庆城县| 诸暨市| 承德县| 峨眉山市| 乡城县| 新郑市| 金乡县| 阆中市| 定陶县| 丽水市| 唐海县| 古蔺县| 胶南市| 玉溪市| 盖州市| 金川县| 灌云县| 辽阳县| 舟山市| 洪泽县| 罗甸县| 兴城市| 镇坪县| 邓州市| 吉木萨尔县| 九江市| 册亨县|