注入
在原有 function 中,加入新的程式碼。
MixinManager
管理及處理 Mixin 相關事件。
原生方法
TREM.class.ReportManager 的原生 refresh 方法。
async refresh() {
console.log(user); // 在不注入的情況下會報錯(搭配下方基本注入)
const url = "https://api.exptech.dev/api";
const reportList = await this.getReport(url);
if (!reportList) return;
}
基本注入
在原始方法的最前方或最後方注入新的內容。(start
、end
基本注入的兩種模式)
const fun = async function (original, ...args) {
const user = "123";
};
MixinManager.inject(TREM.class.ReportManager, "refresh", fun, "start");
自定義注入
指定注入的行數位置。
danger
在非必要情況下,應避免使用此方法,此方法注入很容易導致不同擴充之間衝突, 或是因為 TREM 更新導致無法使用。(因為原方法行數發生變化)
const fun = async function (original, ...args) {
console.log("URL:", reportList);
};
MixinManager.inject(TREM.class.ReportManager, "refresh", fun, 5);