XBlock 基于 Lumen 与 React 的快速开发框架,香不香,你品,你细细品
由来
工作多年,一直做前后端分离的B端的项目,面对大同小异的需求与设计,一直在摸索一套框架,减少团队的工作量。后来就有了xblock。
经过在前公司多个项目开发和使用,不断的改版升级。去年10月份裸辞,全职开发xblock。完全抛弃了在前公司的基础,重新设计,前后端相关依赖也升级到最新版本。
Block的开发思想
将页面中的视图区块,例如一个增删改查的管理表格,视为一个block
,每一个block都封装有自己的数据源,操作事件,UI渲染参数等等。将字段
、按钮(或类似按钮的操作交互点)
等等进行独立封装,灵活的复用与扩展。
简单演示
Don’t BB, show my code:
namespace Project\Student\Blocks;
use Project\Student\Models\Student;
use XBlock\Kernel\Blocks\ModelBlock;
use XBlock\Kernel\Elements\Field;
use XBlock\Kernel\Elements\Button;
use XBlock\Kernel\Elements\Component;
use XBlock\Kernel\Elements\Render;
class StudentList extends ModelBlock
{
public $title = '学生管理'; //定义block展示的标题
public $origin = Student::class; //绑定数据来源,ORM模型类名
public function component()
{
return Component::table()->border(); //以表格形式展示,表格展示边框
}
//在这里添加更多的字段
public function header()
{
return [
Field::key(),
Field::text('code', '学号')->addable()->require()->description('教育部统一编制')->filterable(), //该字段可以新增、必填、提示为... ,字段可筛选
Field::text('name', '姓名')->editable(), //该字段可以编辑修改
Field::text('age', '年龄')->writable()->valueType('number')->filterable(), //该字段可以编辑修改,数据验证类型为数字 字段可筛选
Field::radio('sex', '性别')->render(Render::SEX)->dict([ //该字段为单选按钮,选项为男、女,
'1' => '男',
'2' => '女'
])->writable(),
Field::date('birthday', '出生年月')->writable()->filterable(), //该字段为日期选择 字段可筛选
Field::select('college', '学院')->writable()->dict([ //该字段为下拉选 字段可筛选
'xy-01' => '工商管理学院',
'xy-02' => '计算机学院'
])->filterable(),
Field::text('grade', '年级')->invisible(), //该字段不可见
Field::text('class', '班级')->disExportable(), //该字段不可导出
];
}
public function button()
{
return [
Button::add(), //新增按钮
Button::edit(),//编辑按钮
Button::delete(), //删除按钮
Button::export(), //导出按钮
Button::small('lock', '锁定')->position('inner') //自定义按钮,按钮位置在行内
];
}
public function lock()
{
return message(true)->info('调用了lock事件');
}
}
上述代码的页面展示:
新增:
编辑:
删除
回收站
导出
更多功能请参考文档!
项目链接
xblock - 开发文档
后端核心包:https://github.com/yysel/xblock-kernel
前端核心包:https://github.com/yysel/xblock-react
本帖已被设为精华帖!
本帖由系统于 4年前 自动加精
大佬牛皮 Mark
一个略懂js只用过bootstrap的后端问一下大佬,使用这个框架,对前端有什么要求。
我也在 Laravel + React,挺香的
这个是不是类似fastbuild 就是无前端构建 表格 之类的
非常佩服你的勇气啊老哥,裸辞全职开发这个项目,能养活自己? :joy:
考虑整Laravel吗?毕竟用户基数还是要大一些啊 :scream:
官网写着 开快迅速,写错了,可以改改
手动点赞