【vue】清理程式碼
阿新 • • 發佈:2018-12-07
// 一次性將這個日期選擇器附加到一個輸入框上 // 它會被掛載到 DOM 上。 mounted: function () { // Pikaday 是一個第三方日期選擇器的庫 this.picker = new Pikaday({ field: this.$refs.input, format: 'YYYY-MM-DD' }) }, // 在元件被銷燬之前, // 也銷燬這個日期選擇器。 beforeDestroy: function () { this.picker.destroy() }
這裡有兩個潛在的問題:
- 它需要在這個元件例項中儲存這個
picker
- 我們的建立程式碼獨立於我們的清理程式碼,這使得我們比較難於程式化地清理我們建立的所有東西。
可以通過一個程式化的偵聽器解決這兩個問題:
mounted: function () { var picker = new Pikaday({ field: this.$refs.input, format: 'YYYY-MM-DD' }) this.$once('hook:beforeDestroy', function () { picker.destroy() }) }
使用了這個策略,我們在建立程式碼中就可以進行程式碼清理工作,保持獨立性;也不需要在元件例項中儲存picker