
新手做的页面,最常见的评价是:"功能都实现了,就是看着……不太专业。"问题十有八九出在两处:布局没对齐、流程没节奏。按钮忽大忽小、控件挤在左边、弹窗步骤乱七八糟——这些不是审美问题,是方法问题。
geejing WebBuilder 快速开发平台把这两件事都做成了配置:布局是容器的 layout 属性,分步流程是向导组件(Wb.CardCt)。平台「示例 → basic」下的 layout 和 wizard 两个示例
打开「示例 → basic → layout」,一页看全所有布局形态:

容器设置 layout: row,子组件自动从左到右排列。示例里一排按钮,有的不设宽度(自然宽度)、有的定宽(width: 10em)、有的用 flex: 1、flex: 2 按比例分剩余空间:
flex: 1 和 flex: 2 的两个按钮,宽度永远是 1:2——拖动窗口它们一起伸缩;flex: "2 0 12em" 是完整写法:比例 2、不收缩、基准宽 12em。wrap: true(Row with auto wrap):一行放不下自动换到下一行,窄屏也不乱;justify: center(Row with justify center):整行内容水平居中——工具栏标题就是这么居中的;justify: between(Row with justify between):两端对齐,中间自动撑开——"左边标题、右边按钮"的经典工具栏布局。这些词如果让你想起 CSS 的 flexbox——没错,WebBuilder 的 row 布局就是 flexbox 的配置化封装。区别在于:你不用写一行 CSS,也不用背 display: flex 那串声明,属性面板里选一下就行;懂 flex 的人可以无缝上手,不懂的人看属性名也能猜个八九不离十。
除了 row,还有两个高频布局:
layout: grid1 / grid2 / grid3:按 1 列、2 列、3 列栅格自动排列子控件——表单组件那篇讲过,配合 autoGrid: true 和 gridColumn: span 2 跨列,就是整张表单的对齐方案;layout: fit:子组件撑满整个容器——Viewport、弹窗内容区、图表容器默认用它。记住一个原则:布局是容器的事。子组件只管声明自己的宽、高、flex,怎么排由父容器决定。把这句话刻进脑子里,你的页面就再也不会"挤成一团"。

第二个示例是「示例 → basic → wizard」,一个典型的"应用创建向导":

它的实现核心是卡片容器(Wb.CardCt):四个步骤就是四个 Container 子节点,同一时刻只显示一张卡片。上一步/下一步只是改一个索引:
click: app.cardCt1.activeIndex++;
app.setButtons();
// initialize 事件里定义的按钮状态控制
setButtons() {
let ct = app.cardCt1, activeIndex = ct.activeIndex;
app.prevBtn.disabled = activeIndex == 0;
app.nextBtn.disabled = activeIndex >= ct.items.length - 1;
}拆解一下这套"向导套路",你会发现它非常通用:
activeIndex 一个数字描述整个流程进度;注册向导、安装向导、多步审批、分期录入……所有"分步走"的场景,都是这一套模板。
Wb.ajax 就够了)。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。