1. 程式人生 > >vue element-ui的$notify注意點

vue element-ui的$notify注意點

我的初衷是把element-ui的$notify通知封裝成一個元件,登入成功後呼叫獲取低庫存介面,如果獲取介面的列表當中庫存大於0,則顯示這個通知,並且在文本當中提供點選事件。

因此,首先想到的就是使用dangerouslyUseHTMLString屬性,可以插入html字串

export default {
    methods: {
      open12() {
        this.$notify({
          title: 'HTML 片段',
          dangerouslyUseHTMLString: true,
          message: '<strong>這是 <i id="show">HTML</i> 片段</strong>'
        });
      }
    }
  }

但是,message裡面的html字串其實是脫離了vue,例如不能用@click方法繫結事件,因此,應該用js的操作dom來繫結。

首先,我想到的是在該元件的mounted方法裡面獲取

document.querySelector('#show');

但是這樣獲取到的是null,為什麼呢?

mounted的時候是該元件模板裡面的dom掛載完畢,然而我這個元件裡面並沒有模板,只在方法裡使用了this.$notify,掛載完後這個notify並不在app裡面,


role=“alert”就是該通知框,因此我們不能把它當做普通元件操作。而且,它的掛載時機有可能在該元件的mounted之後,就是mouted方法時只是該元件掛載了,但是裡面的這個motify可能還沒有,因此就是null。

如果要在裡面新增js方法如繫結事件,應該要在html裡面新增監聽,但是要掌握好時機。

我這裡還是不使用notify了,因為notify應該是偏向於文字展示的通知類,我這裡使用notify可能就會有點不妥。