W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
options
的 interface
export
出去,方便可能需要集成的使用方引用class
,同時實現(xiàn) MorJSPlugin
這個 interface
apply
函數apply
函數里面的 this
指向,因此建議都 class
下面的方法都用箭頭函數,避免 this
指向問題hook
里面的監(jiān)聽函數必須用普通函數,因為在 hook
調用的時候會動態(tài)修改 this
指向,指向當前的 app
、page
、component
實例import type { MorJSPlugin, MorJSHooks } from '@morjs/api'
// export 出去,方便使用方集成
export interface IRuntimePluginExampleOptions {}
export default class RuntimePluginExample implements MorJSPlugin {
// 必須要有插件名字
pluginName = 'RuntimePluginExample'
options: IRuntimePluginExampleOptions
/**
* 根據插件特性決定是否需要開放選項配置
*/
constructor(public options: IRuntimePluginExampleOptions = {}) {}
/**
* 必須要有 apply 函數
* class 下面的方法用 arrow function
*/
apply = (hooks: MorJSHooks): void => {
// 注意,這里是 arrow function
// hooks 里面包含上面生命周期列表中的所有hook
// 請用 tap 來做 hook 的事件監(jiān)聽注冊
// 傳入的插件執(zhí)行函數必須是 function(){}, 因為會動態(tài)修改 this 指向
hooks.appOnLaunch.tap(
this.pluginName,
function (
this: tinyapp.IAppInstance<any>,
options: tinyapp.IAppLaunchOptions
) {
// 這里可以拿到對應生命周期里面的參數
console.log(options)
}
)
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: