在Vue開發中,我們可能會用到一些公用方法,如日期格式化、字符串截取、數字格式化等等。這些公用方法可以被多個組件使用,為了避免在每個組件中都重復定義,我們可以將它們定義成全局公用方法。
定義全局公用方法有兩種方式:在Vue實例中定義和使用插件的形式。下面我分別介紹一下這兩種方式。
在Vue實例中定義
new Vue({ methods: { formatDate(date) { // 日期格式化邏輯 }, truncate(str, length) { // 字符串截取邏輯 }, formatNumber(num) { // 數字格式化邏輯 }, }, })
這樣在組件中就可以直接使用這些公用方法:
export default { data() { return { date: '2020-01-01', str: '這是一個很長很長很長的字符串', num: 12345, } }, computed: { formattedDate() { return this.formatDate(this.date) }, truncatedStr() { return this.truncate(this.str, 10) }, formattedNum() { return this.formatNumber(this.num) }, }, }
需要注意的是,在Vue實例中定義的全局公用方法只能在該實例范圍內使用。
使用插件的形式
除了在Vue實例中定義全局公用方法,還可以使用插件的形式注冊全局公用方法。在Vue.js中,插件是一種可以為Vue增添功能的方式。插件通常會公開一個或多個全局方法或屬性,也可以添加一些實例方法。
const myPlugin = { install(Vue) { Vue.mixin({ methods: { formatDate(date) { // 日期格式化邏輯 }, truncate(str, length) { // 字符串截取邏輯 }, formatNumber(num) { // 數字格式化邏輯 }, }, }) }, } Vue.use(myPlugin)
使用插件后,這些全局公用方法就可以在整個應用中使用了,包括Vue實例、組件以及JavaScript模塊。
export default { data() { return { date: '2020-01-01', str: '這是一個很長很長很長的字符串', num: 12345, } }, computed: { formattedDate() { return this.$formatDate(this.date) }, truncatedStr() { return this.$truncate(this.str, 10) }, formattedNum() { return this.$formatNumber(this.num) }, }, }
需要注意的是,在插件中定義全局公用方法時需要使用Vue.mixin方法,將方法混入到Vue實例中,讓這些方法可以被任意一個Vue實例、組件或者窗口使用。
總而言之,定義全局公用方法可以優化代碼結構,避免重復定義、提高代碼復用性,能夠讓我們在開發中更加高效。
上一篇vue v–for if
下一篇coco背景圖像json