最近发现自己在低代码的道路上越走越远了,各种低代码平台层出不穷,学习成本也越来越高,可怜我的头发在日渐稀少......[流泪]
话说回来,低代码一直用一直香!!!
什么是 amis?
amis 是一个低代码前端框架,它使用 JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率。 通过 JSON 配置就能生成各种后台页面,极大减少开发成本,甚至可以不需要了解前端。
先简单看一下
- 一个最简单的 amis 配置看起来是这样的:
{ "type": "page", "body": "Hello World!"}#这是一段 JSON,它的含义是:#type 是 amis 节点中最重要的字段,它告诉 amis 当前节点需要渲染的是Page组件。#而 body 字段会作为 Page 组件的属性,Page 组件根据这个值来渲染页面内容。
Page是 amis 页面配置中 必须也是唯一的顶级节点
2. 数据域与数据链
#添加初始化接口{ "type": "page", "initApi": "/amis/api/mock2/page/initData", "body": "date is ${date}"}#这个 api 接口返回的数据结构如下:{ "status": 0, "msg": "", "data": { "title": "Test Page Component", "date": "2017-10-13" }}# 渲染后结果: date is 2017-10-13
简单列举了两个例子,是不是很简单,so easy
好吧,快速开始
Amis 有两种使用方法:
SDK 版本适合对前端或 React 不了解的开发者,它不依赖 npm 及 webpack,可以像 Vue/jQuery 那样外链代码就能使用。
SDK:
下载方式:
- github 的 releases,文件是 sdk.tar.gz。
- 使用 npm i amis 来下载,在 node_modules\amis\sdk 目录里就能找到。
切换主题:
jssdk 版本默认使用 sdk.css 即云舍主题,如果你想使用仿 Antd,请将 css 引用改成 antd.css。同时 js 渲染地方第四个参数传入 theme 属性。如:
Vue:
可以基于 SDK 版本封装成 component 供 vue 使用,具体请参考示例:https://github.com/aisuda/vue2-amis-demo
React:
初始项目请参考 https://github.com/aisuda/amis-react-starter。
如果在已有项目中,React 版本需要是 >=16.8.6,mobx 需要 ^4.5.0。
amis 1.6.5 及以上版本支持 React 17。
安装:
npm i amis
组件介绍
1.Page 页面
{ "type": "page", "body": { "type": "form", "api": "/amis/api/mock2/form/saveForm", "body": [ { "type": "input-text", "name": "name", "label": "姓名:" } ] }}
2.Container 容器
{ "type": "page", "body": { "type": "container", "body": "这里是容器内容区" }}
3.Collapse 折叠器
{ "type": "page", "body": { "type": "collapse-group", "activeKey": [ "1" ], "body": [ { "type": "collapse", "key": "1", "header": "标题1", "body": "这里是内容1" }, { "type": "collapse", "key": "2", "header": "标题2", "body": "这里是内容2" }, { "type": "collapse", "key": "3", "header": "标题3", "body": "这里是内容3" } ] }}
4.Flex 布局
{ "type": "page", "body": { "type": "flex", "items": [ { " style": { "backgroundColor": "#1A5CFF", "width": 100, "height": 50, "margin": 5 }, "type": "tpl", "tpl": "" } ] }}
5.Form 表单
{ "type": "page", "body": { "type": "form", "body": [ { "type": "input-text", "label": "文本框", "name": "text" }, { "type": "input-password", "label": "<a href='./password'>密码</a>", "name": "password" } ] }}
6.CRUD 增删改查
CRUD,即增删改查组件,主要用来展现数据列表,并支持各类【增】【删】【改】【查】等操作。
注意 CRUD 所需的数据必须放 items 中,因此如果只是想显示表格类型的数据没有分页,请使用 Table。
程序员的CRUD
7.demo 示例
https://aisuda.bce.baidu.com/amis/examples/index
用 JSON 写页面有什么好处
为了实现用最简单方式来生成大部分页面,amis 的解决方案是基于 JSON 来配置,它的独特好处是:
其他亮点
amis 不适合做什么?
使用 JSON 有优点但也有明显缺点,在以下场合并不适合 amis:
总结
amis确实可以说是一个良心产品,对于一些简单的功能,只要有api就能实现完整的系统,组件丰富,样式也很好看,对于前端不是很擅长的人员来说非常的友好,对于高手也能提升效率!