最近研究前輩代碼,發現他們 使用Vue插件plugins為 Vue 添加全局功能 ,感覺很實用的方法
比如,我們經常會在 min.js中添加 directives, filters, mixin, Vue.prototype.XX 這些API方法,常常會使得 main.js 冗余,難看
使用 Vue 的 插件plugins,專門建一個文件來處理這些方法, 再引入 main.js 中,使得頁面簡潔又具有模塊化
1.在 plugins/index.ts 中
1 // 插件類型 2 import { PluginObject } from 'vue'; 3 4 // 全局資源 5 import statics from './statics'; //靜態屬性/方法 6 import directives from './directives'; // 自定義指令 7 import instances from './instances'; //實例屬性/方法 8 import filters from './filters'; //實例屬性/方法 9 import mixins from './mixins'; // 混入 10 import { $Http } from './mixins/provides/service'; // 混入 11 12 export const plugins: PluginObject<any> = { 13 install(Vue, options) { 14 // 靜態屬性/方法 15 Object.assign(Vue, statics); 16 17 // 實例屬性/方法 18 // Object.assign(Vue.prototype, instances); 19 20 // 自定義指令 21 Object.keys(directives).forEach((key: string) => { 22 Vue.directive(key, directives[key]); 23 24 }); 25 26 // 自定義過濾器 27 Object.keys(filters).forEach((key: string) => { 28 Vue.filter(key, filters[key]); 29 }); 30 31 //請求的方法提出來了 32 Vue.prototype.$Http = $Http; 33 34 // 混入 35 Vue.mixin({ 36 ...mixins, 37 }); 38 }, 39 };
2.在 main.js 中
1 import { plugins } from '@/plugins'; // 引入全局插件 2 Vue.use(plugins);
分享一刻: