xl-aya
Version:
ssr 工具库
51 lines (50 loc) • 1.72 kB
TypeScript
import { FunctionComponent } from 'react';
import { useHistory, useParams, Link, StaticRouter } from 'react-router-dom';
declare type RouteConfig = {
path: string;
component: FunctionComponent;
};
declare type RouterConfig = RouteConfig[];
declare type TemplateConfig = {
title?: string;
keywords?: string;
description?: string;
icon?: string;
viewport?: string;
};
declare type AyaApp = {
routes: RouterConfig;
templateConfig: TemplateConfig;
};
declare type GetInitialStateContext = {
common: {
path: string;
query: {
[key: string]: string;
};
params: {
[key: string]: string;
};
};
};
declare function useInitialState<T>(): {
data: T;
setData: (data: T) => void;
run: () => void;
loading: boolean;
error: boolean;
};
declare function makeSwitchPages<T>(routess: RouterConfig, ssrData: T): JSX.Element;
declare function matchRoute(routes: RouterConfig, pathname: string): {
route: RouteConfig;
params: {
[key: string]: any;
};
};
declare function searchToQuery(search: string): {
[key: string]: string;
};
declare function clientInit(routes: RouterConfig): void;
declare function renderHtml(reactHtmlStr: string, jsFilePath: string, initialData: any, mode: 'csr' | 'ssr', templateConfig?: TemplateConfig): string;
declare function ssr(pathname: string, app: AyaApp, jsFilePath: string, mode: 'csr' | 'ssr', ctx: GetInitialStateContext, ReactDOMServer: any): Promise<string>;
export { RouterConfig, useInitialState, makeSwitchPages, matchRoute, searchToQuery, clientInit, useHistory, useParams, Link, GetInitialStateContext, StaticRouter, renderHtml, AyaApp, ssr, };