使用飞冰+dva快速构建一个后台系统

写在前面

最近我们接到这样一个需求,要写一个后台管理系统,时间很急,产品也只是给出了原型稿,把功能陈列了一下,给出的要求就是先注重功能,用起来再去考虑美化。但是作为前端,我们怎么能就这样满足呢,也是前一阵刚刚了解到了飞冰,于是大家一起商量了一下决定采用飞冰来搭建这套系统。这篇也就是当作记录这段时间使用飞冰的一些心得和遇到的一些坑。

介绍一下

先介绍一下飞冰,先从先上官网文档上提出几个关键词,阿里开源快速搭建提高开发效率丰富的物料体系,其目的就是快速搭建起一个面向中后台的管理系统,其中丰富的模板及区块可以省去开发者大量的时间,将精力主要集中于逻辑层。然后是dva,基于redux和redux-saga的数据流方案,本片文章不会对dva进行过多的介绍,不过我还是很推荐大家去学习一下dva的,接下来,跟我一步一步的快速搭建起来一个管理系统。

iceworks

iceworks是ice推出的辅助开发者快速开发中后台前端应用的GUI软件,下载地址。 你可以通过这个GUI软件建立你的项目,修改、增加页面,打包项目。

新建项目

新建项目,首先第一步是选择模板,我们可以看到飞冰现在为我们提供了近50个模板,其中包括飞冰(React),小程序,Vue,Angular项目模板,现在先选择一个模板,这里我选择的是ICE Application Management这套模板。好的,模板选择好了之后,点击使用该模板,然后就可以看到我们的项目在快速的安装当中了。

安装完成之后,点击启动调试服务,启动成功后,在本地4444端口,就可以访问到我们的这个项目了。

引入dva

接下来,先不去讨论目录结构,我们开始引入dva。

  • 安装dva 直接在iceworks中点击添加依赖即可。
  • 启动dva 将src文件夹中的index.js修改成这样。
import Dva from 'dva';
// 载入默认全局样式 normalize 、.clearfix 和一些 mixin 方法等
import '@icedesign/base/reset.scss';
import router from './router';// 创建dva实例
const app = new Dva();// 引入路由
app.router(router);// 启动项目
app.start('#ice-container');复制代码

然后router.js文件也需要做一点点修改

// 引入位置修改
import { HashRouter as Router, Switch, Route } from 'dva/router';// 将默认导出修改
export default ({ history }) => <Router history={history}>{routeChildren}</Router>;
复制代码

这样我们已经将dva成功引入了,这是第一步,然后就是引入model和Container Component。 新建models文件夹,然后在里面写入dva的model文件,具体model怎么定义可以看这里。 然后在我们需要的组件中对应的index.js中通过dva的connect连接model。

新增页面

新增页面的时候我们需要做的事情就很简单了

  • 点击新建页面,选择需要的区块。比如一个简单的可过滤的列表页。
  • 选择好区块后,我们可以先预览一下效果。确定后就可以点击生成页面了。
  • 然后在models中写入对应dva的model。

mock数据

开发中我们免不了要mock数据,飞冰已经为我们提供了完整的mock方案。

  • 项目根目录下面创建mock/index.js文件。
  • 怎么写mock数据
// mock/index.js
const foo = require('./foo.json');
const bar = require('./bar');module.exports = {// 同时支持 GET 和 POST'/api/users/1': foo,'/api/foo/bar': bar(),// 支持标准 HTTP'GET /api/users': { users: [1, 2] },'DELETE /api/users': { users: [1, 2] },// 支持自定义函数,API 参考 express4'POST /api/users/create': (req, res) => {res.end('OK');},// 支持参数'POST /api/users/:id': (req, res) => {const { id } = req.params;res.send({ id: id });},
};
复制代码

配置导航及主题颜色

  • 配置导航可以在menuConfig.js文件中进行修改
  • 主题颜色在package.json中的themeConfig中进行修改

目录结构

所以我们整体的目录结构是这样的。

| -- components         头部及导航栏组件
| -- layout             布局组件及公用样式写入这里
| -- pages             | -- Home | -- components 负责展示的区块组件文件| -- Home.jsx| -- index.js   我们可以选择在这里来写入connect
| -- models             | -- common.js      公用的model,例如各种枚举数据,通用数据| -- userInfo.js    各自的model
| -- services           api接口
| -- utils              工具方法
| -- index.js           入口文件
| -- menuConfig.js      顶部及侧部导航栏配置
| -- router.jsx         导出路由组件
| -- routerConfig.js    路由配置
复制代码

表单

表单类组件推荐使用@icedesign/base中的Form及Field,这里跟官网推荐的完全相反,原因是我发现用官方推荐的formBinder的话,获取数据真的难,而form和field的组合更加简单、易用。

最后

这篇文章对于飞冰的介绍没有太多深入,只是简单介绍了一下怎么使用,算是一篇推荐软文???? 飞冰的 我觉得如果大家如果遇到这样的项目,不妨试用一下飞冰,你可以产品和UI来选择页面、区块,甚至可以让他自己把页面搭起来,然后我们来完成功能就好了,这样岂不美哉?好了,就这样。?

使用飞冰+dva快速构建一个后台系统相关推荐

  1. 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念

    深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...

  2. 用Easy UI快速搭建一个后台

    今天来分享一个我前端技术-------如何使用Easy UI快速搭建一个后台,本博主也只是在官网文档学习了一个小时左右,就已经会使用了,当你学了Easy UI后,一个后台短短两分钟就可以over了,好 ...

  3. Springboot+mybatis构建管理后台系统

    Springboot+mybatis构建管理后台系统 新建一个springboot工程 开发后台管理登陆功能 1.在springboot中集成mybatis 2.编写登陆接口 2.编写登陆页面 登陆功 ...

  4. Figma: 如何在 Web 上构建一个插件系统

    原文:https://www.figma.com/blog/how-we-built-the-figma-plugin-system/ 翻译:https://juejin.cn/post/684490 ...

  5. iframe如何发送请求_【第1803期】如何在 Web 上构建一个插件系统

    前言 上周末的这篇新闻[译]WebAssembly 1.0成为W3C推荐标准,也是在浏览器中运行的第四种语言不知道你注意到了吗?今日早读文章由@夏华翻译分享,本文由@刘岩推荐. 正文从这开始-- 在 ...

  6. 如何快速构建一个具有可扩展性、弹性伸缩性、安全性、成本低、易用性的无服务器应用?

    作者:禅与计算机程序设计艺术 云服务.移动应用程序开发.微服务架构设计.多平台部署等概念不断出现在开发者的视野中.由于云计算.网络设备及其连接性的日益增长,越来越多的人选择采用云端服务的方式进行软件开 ...

  7. 【jQuery插件】用jQuery Masonry快速构建一个pinterest网站布局(转)

    [jQuery插件]用jQuery Masonry快速构建一个pinterest网站布局 时间:2011年03月21日作者:愚人码头查看次数:29,744 views评论次数:25条评论 前段时间领导 ...

  8. 八十九、Python的GUI系列 | 使用PyQt5 快速构建一个GUI 应用

    @Author:Runsen @Date:2020/7/11 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  9. AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛—《工程化打造AI中的CPU》、《构建一个AI系统:在LLM上应用带有RLHF来推进定制》、《多模态预训练的进展回顾与展望》、《扩展大

    AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛-<工程化打造AI中的CPU>.<构建一个AI系统:在LLM上应用带有RLHF来推进定制>.<多模态预训 ...

最新文章

  1. C#中汉字数字、汉字拼音的转换
  2. shell命令之(一) 初探grep
  3. 【沟通的艺术】故事大王
  4. java开发微信公众平台(一)-- 服务器配置
  5. 《推荐系统实践》附上Reference 中的干货 (Paper,Blog等资料的链接)
  6. php正则去掉width=,关于php使用正则去除宽高样式的方法
  7. guava 缓存查询_阿里Java二面难点:Redis缓存穿透、击穿、缓存雪崩方案
  8. 阿里腾讯的正面交锋:支付宝被薅羊毛 137 万依然乐此不疲
  9. HTML——超文本标记语言(表单及12个表单元素)
  10. 曼昆微观经济学第8版笔记和课后习题答案
  11. 2020程序设计竞赛-现场赛题解
  12. cad.net cad启动慢? cad2008启动慢? cad启动延迟? cad卡住? cad98%卡? 默认打印机!!
  13. Git error: unable to create file xxx: Filename too long
  14. 程序员表白技巧:程序员木讷? 我反手就是一串代码
  15. vscode中文备注出现方框标注显示此字符非ascii字符如何取消
  16. QGIS学习资料及地理数据下载
  17. 南京大学计算机实验教程,南京大学 计算机系统基础 课程实验 2018(PA0-1)
  18. CCNET的参考文件
  19. 备份计算机软件,PickMeApp(软件备份还原)
  20. 肖特基二极管的这几点技术参数,你未必全都知道

热门文章

  1. 技巧篇:scanf触发malloc_consolidate进行unlink(chunk size限制得到极小的chunk)
  2. BZOJ 4278: [ONTAK2015]Tasowanie 后缀数组
  3. V90 PN伺服EPOS回零+点动JOG+MDI+程序步具体工作模式详解
  4. 殡仪馆计算机控制火化机,PLC在殡仪馆火化机中应用.doc
  5. Ubuntu联网设置
  6. android 双卡获取电话号码,Android开发——反射获取双卡Sim卡信息
  7. WordPress视频主题Qinmei 2.0
  8. c语言输出我爱你三个字满屏,“我爱你”三个字用二进制怎么表示
  9. HTML5之HTML基础学习笔记
  10. python中复数类型与数学中复数的概念一致_2020年9月计算机二级python选择题在线题库12/15...