像 flutter 风格用纯粹 js 构建页面
Go to file
2024-05-15 22:40:53 +08:00
.gitignore init 2024-01-12 04:22:52 +08:00
index.html 发布配置 2024-01-12 04:38:20 +08:00
index.js 基本结构 2024-05-15 22:38:07 +08:00
LICENSE Initial commit 2024-01-12 01:04:22 +08:00
main.js 基本结构 2024-05-15 22:38:07 +08:00
package.json 无法动态导出, 恢复默认 2024-05-15 20:56:42 +08:00
README.md 说明文档 2024-05-15 22:40:53 +08:00

widgets

像 flutter 风格用纯粹 js 构建页面 { createElement List ListItem Span Button Img Input TextArea Avatar Dialog }

(本质上只是给创建 html 的js方法套了一层使其能够链式调用)

npm i @laniakeasupercluster/widgets
import { createElement, Button, Span } from '@laniakeasupercluster/widgets'

document.body.appendChild(createElement({
    style: { width: 320, height: 320, padding: 64 },
    children: [
        Span({ textContent: 'hello world!' })
        Button({
            textContent: 'click',
            onclick: event => {
                const randomNumber = Math.floor(Math.random() * 100)
                event.traget.textContent = 'click' + randomNumber
            }
        })
    ]
}))

dev

git clone git@git.satori.love:LaniakeaSupercluster/widgets.git
npm i
npm run dev

HTML 基本概念

对于UI书写划分为两类, 一是外观样式, 一是结构关系 一个元素的基本构成就是其外观样式, 因此它书写在声明它的同一列

div.w(128).h(64)

嵌套关系则应该换行并缩进, 保持与 HTML 一致的风格

document.body.appendChild(div.w(128).h(64).children([
    div.text('Hello world!'),
    div.text('Hello world!'),
    div.text('Hello world!')
]))

有时期望复用样式

const option = { style: { width: '128px', height: '64px' } }
div(option).children([
    div.text('Hello world!'),
    div.text('Hello world!'),
    div.text('Hello world!')
])