jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
49 lines (48 loc) • 2.11 kB
TypeScript
import React from 'react';
import type { IScopedContext } from 'jamis-core';
import { ScopedContext } from 'jamis-core';
import type { History } from 'history';
import type { AppProps, AppRouter, AsideNavProps } from '../types';
declare class App extends React.Component<AppProps, object> {
static propsList: Array<string>;
static defaultProps: Partial<AppProps>;
static hookBeforeRenderSchema: (props: AppProps) => void;
unWatchRouteChange?: () => void;
unWatchHistoryChange?: () => void;
unReaction?: () => void;
articleRef: HTMLDivElement | null;
constructor(props: AppProps);
componentDidMount(): Promise<void>;
componentWillUnmount(): void;
componentDidUpdate(prevProps: AppProps): Promise<void>;
handleWinResize: import("lodash").DebouncedFunc<() => void>;
setArticleRef: (ref: HTMLDivElement | null) => HTMLDivElement | null;
dispatchEventForward: (event: string, more?: Record<string, any>) => void;
handleRouterChange: (props: AppProps, location?: History["location"], pathnameChanged?: boolean) => void;
reload(subpath?: any, query?: any, ctx?: any, silent?: boolean): Promise<void>;
receive(values: object): void;
handleNavClick: (e: React.MouseEvent) => void;
toggleFolded: () => void;
/**
* 更新路由页面的配置
*/
updatePages: (pages: AppRouter[]) => void;
/**
* 获取路由页面配置
*/
getPages: () => AppRouter[];
renderHeaderBar: (aside: AppProps["aside"]) => JSX.Element;
renderHeader: (aside: AppProps["aside"]) => JSX.Element | null;
renderNavLink: AsideNavProps['renderLink'];
renderAside: (aside: AppProps["aside"]) => JSX.Element | null;
render(): JSX.Element;
}
export declare class AppRenderer extends App {
static contextType: React.Context<IScopedContext<import("jamis-core").ScopedComponentType>>;
context: React.ContextType<typeof ScopedContext>;
constructor(props: AppProps, context: IScopedContext);
componentWillUnmount(): void;
setData(values: object, replace?: boolean): void;
getData(): any;
}
export {};