Closed ClarkXia closed 2 years ago
getConfig 作为页面配置有 title / links / scripts 等能力,但随着 auth / pha / miniapp 等能力的加入,其配置能力也被拓展,可配置的内容越来约复杂,为了提升开发过程中的体验,期望可以有一种方式可以提供良好的类型提示
支持 defineGetConfig 来定义页面配置:
defineGetConfig
import { defineGetConfig } from 'ice'; import type { RouteConfig } from 'ice'; export default function About() { const config = useConfig<RouteConfig>(); console.log('config', config); return ( <> </> ); } export const getConfig = defineGetConfig(() => { return {}; });
通过 useConfig 消费时同样可以获取。
框架 API 需要提供扩展 getConfig 的方式,为了方便类型维护,需要通过指定类型文件的方式注册类型:
getConfig
// types.ts interface ConfigAuth { auth?: string[]; } export ConfigAuth;
const plugin = () => ({ setup({ generator }) => { generator.addRouteTypes({ specifier: ['ConfigAuth'], type: true, source: '@ice/plugin-auth/esm/types', }); } }); export default plugin;
背景
getConfig 作为页面配置有 title / links / scripts 等能力,但随着 auth / pha / miniapp 等能力的加入,其配置能力也被拓展,可配置的内容越来约复杂,为了提升开发过程中的体验,期望可以有一种方式可以提供良好的类型提示
方案
支持
defineGetConfig
来定义页面配置:通过 useConfig 消费时同样可以获取。
框架 API 需要提供扩展
getConfig
的方式,为了方便类型维护,需要通过指定类型文件的方式注册类型: