最近优化 DuoyunUI 时写了一些“模式”,就是一些我经常遇到的需求进行了一些抽象实现,比如创建一个表单(复制到控制台试试):
import("https://esm.sh/duoyun-ui/patterns/form?bundle").then(({ createForm }) => {
createForm({
type: "modal",
data: { firstName: "First Name", lastName: "Last Name", github: "https://github.com/mantou132" },
header: `Create User`,
formItems: [
[{
type: "text",
field: "firstName",
label: "First Name",
},{
type: "text",
field: "lastName",
label: "Last Name",
}],{
type: "text",
field: "github",
label: "Github",
}
],
});
});
返回一个 Promise ,对应提交和取消,参数可以添加 prepareOk
/prepareClose
来打断关闭表单。
字段支持的 type
: text password date date-time date-range number checkbox checkbox-group picker radio-group select textarea slot
其中 slot
是用来自定义的,比如:
{
type: "slot",
slot: new HTMLInputElement(),
field: "github",
label: "Github",
}
模式可以直接创建一个 CRUD 应用: https://duoyun-ui.gemjs.org/zh/blog/crud
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.