应用配置
配置属于应用实例,而不是进程级全局状态。先创建 app,再在挂载前写入配置:
ts
import { createApp } from "@elfui/core";
import { App } from "./App";
const app = createApp(App);
app.config.globalProperties.appName = "Console";
app.config.warnHandler = (message, ...args) => {
console.warn("[Console]", message, ...args);
};
app.config.errorHandler = (error, info) => {
reportError(error, { info });
};
app.mount("#app");配置项
| 选项 | 作用 |
|---|---|
globalProperties | 应用级只读约定值;组件 setup 从 ctx.config.globalProperties 读取,模板从 $app 读取 |
warnHandler | 接收该 App 组件运行时警告 |
errorHandler | 接收该 App 的 setup/render 错误 |
宏组件中需要在 TypeScript 逻辑里读取配置时,使用 useAppConfig():
ts
import { useAppConfig } from "@elfui/core";
const appName = useAppConfig().globalProperties.appName;模板字符串表达式仍遵循 TypeScript 作用域;纯模板表达式可读 $app:
ts
defineHtml(`<p>{{ $app.appName }}</p>`);globalProperties 本身不是响应式容器。需要运行时更新时,把 useRef() 或 useReactive() 的返回值放入其中。
边界
tagPrefix 不属于应用配置。宏组件 tag 在编译期确定,统一前缀只能在 @elfui/vite-plugin 中设置。
WARNING
@elfui/core 也导出 configure() 和 getConfig(),用于旧式进程级配置或底层集成。新应用优先使用隔离的 app.config;resetConfig() 仍只在 @elfui/runtime 提供,主要用于测试清理。
