Skip to content

创建一个 Refina 应用

​应用实例

每个 Refina 应用通过调用 $app 函数创建:

ts
import { $app } from "refina";

$app([], _ => {
  // 应用主体 (主函数)
  // ...
});

使用插件

所有组件和工具函数都通过插件提供。所以插件是必不可少的一部分。

$app 的第一个参数可以是插件列表。

ts
$app([Plugin1, Plugin2(param1, param2), Plugin3], _ => {
  // ...
});

但是,TypeScript 并不知道有哪些插件被使用,除非显式地声明它们 :

ts
declare module "refina" {
  interface Plugins {
    Plugin1: typeof Plugin1;
    Plugin2: typeof Plugin2;
    Plugin3: typeof Plugin3;
  }
}

事实上,属于Refina核心的组件和工具函数由名为 Prelude 插件的提供。这个插件在创建应用时会被自动添加。

主函数

主函数是页面的主体,负责构建页面和处理事件。

不但应用(App)有主函数,每个视图(View)和组件(Component)也有主函数。

主函数的第一个参数是上下文对象。通过上下文对象可以进行渲染组件、处理事件等等操作。

WARNING

必须将上下文对象(即第一个参数)命名为 _

否则,编译时转换将不会工作,并将产生运行时错误。

根元素

根元素是应用挂载在 DOM 中的容器元素。

根元素默认是 "#app"

你可以用 root 选项自定义根元素。

ts
$app(
  { plugins: [], root: "#my-root" },
  _ => {
    // ...
  },
  "my-root",
);