@remax/framework-shared
Version:
使用真正的 React 构建跨平台小程序
28 lines (27 loc) • 974 B
JavaScript
import { useLayoutEffect, useContext } from 'react';
import { lifeCycleName, registerLifecycle } from './lifecycle';
import PageInstanceContext from './PageInstanceContext';
import ComponentInstanceContext from './ComponentInstanceContext';
import AppInstanceContext from './AppInstanceContext';
export function usePageEvent(eventName, callback) {
var pageInstance = useContext(PageInstanceContext);
var lifeCycle = lifeCycleName(eventName);
useLayoutEffect(function () {
return registerLifecycle(pageInstance, lifeCycle, callback);
});
}
export function useComponentInstance() {
return useContext(ComponentInstanceContext);
}
export function usePageInstance() {
return useContext(PageInstanceContext);
}
/**
* App Hooks
*/
export function useAppEvent(eventName, callback) {
var lifeCycle = lifeCycleName(eventName);
useLayoutEffect(function () {
return registerLifecycle(AppInstanceContext, lifeCycle, callback);
});
}