一个简单又好入门的 react 后台管理系统(1)

86883a42gy1fgqb9qn599j208c08cwes.jpg

后台管理系统项目起步

一、在码云创建两个仓库,一个前端页面,一个后台假数据,分开创建!因为要实现前后端分离,示例如下图

image.png

二、仓库创建好后,在本地创建一个文件夹名字随意,然后在这个文件夹下面使用 react 脚手架创建一个 react 项目

npx create-react-app 你的项目名
  1. 项目创建好后 cd 到项目目录下,然后 code ./ 打开到 vs code里面

三、打开项目目录后,对该目录进行一些修改

  1. 删除 src 文件,自己创建一个 src 文件,里面只要有 index.js 即可
  2. 删掉 public 文件夹里面多余的东西,保留 index.html 和小图标即可
  3. 重写 index.html,将小图标引进去即可 (小图标引不引看个人喜爱)
  4. 如何引入小图标?
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon">

简写:link: facv 回车即可

四、安装 antd 并配置 antd 的使用环境

ps: 由于 node-sass 用 yarn 不好安装,所以建议使用 npm,可以将 yarn.lock 这个文件删除,将 node-modules 也删除,然后就可以了,删除后,千万要记得初始化! npm i

npm install --save antd
2. 安装完 antd 后再安装 react-app-rewired customize-cra
npm install --save react-app-rewired customize-cra
3. 安装完上面的东西后,在 package-json 文件下,修改 scripts 脚本,对比图如下
image.png

其实就是把 最下面那条 eject 那条给删了,然后把上面 react-scripts 改为 react-app-rewired

4. 安装一下 babel 插件
npm install --save babel-plugin-import
5. 在项目根目录下创建一个 config-overrides.js 文件,里面的代码如下:
const { override, fixBabelImports } = require('customize-cra');
module.exports = override(
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: 'css',
}),
)
6. 做一个简单的仓库提交 (以上,我们实现了项目的创建以及 antd 的按需引入配置)
注意!提交之前要记得先关联一下远程仓库!关联后就可以提交了
git remote add origin 你第一步建的前端仓库地址
再次注意!第一次提交,要加 -u
git push -u origin master
7. 远程提交后,就可以在远程仓库里面看到我们的东西了,但是我们写代码不要再 master 分支里面去改,我们可以在本地创建一个 develop 分支,可以在该分支上去改代码
1. git checkout -b develop
2. git push -u origin develop

这时,在远程仓库里面也可以看到我们创建的 develop 分支了,为了避免其他合作者在 master 上进行代码操作,我们可以在分支管理上将 develop 分支设置为默认分支,将 master 分支设置为保护分支

8. 启动项目,npm start ,启动后,默认一片空白就对了!

五、在 src 文件夹下对 index.js 进行如下操作

image.png
2. 在 src 文件夹下创建一个 App.js 文件,里面的代码如下
image.png
3. 做一些全局样式的操作,清除浏览器的默认样式,在 src 目录下创建一个 base.scss 文件 (去reset.css里面找,它是一个重置浏览器默认样式的 css )万能代码如下
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }

//== 万能分割线,这里是我根据项目加的,你们看情况=======
html, body, #root {
height: 100%
}

用了记得在 App.js 或者 index.js 下引入

注意!!! 引入了 scss 文件就需要安装 node-sass
npm install --save-dev node-sass

脚本启动的话,用 yarn 启动也行,没多大影响

4. 可以再进行一个简单的远程仓库提交,以上我们做了项目支持 sacc 的功能

六、选布局

1. antd 里面选一个 layout 布局
 目录结构如下: 
 >src
      >layouts 文件夹
              >BaseLayout.js     基础页面(在右侧那些页面)
2. 将看中的 layout 布局代码复制粘贴到 BaseLayout.js 页面下,并根据项目需要对代码进行修改
3. 由于我们是路由页面,所以我们要在所需的组件下放坑,这就需要我们下载路由
npm install --save-dev react-router-dom
4. 然后再 App.js 引入我们的路由,注意!!! 哪里要放坑哪里要引入路由和你坑里要放的组件这两样东西 !!!代码如下
image.png
5. 在 src 下创建一个 page 文件夹,用于存放我们的路由页面,目录结构如下
image.png
6. 在 App.js 页面引入 login 页面,并将它放进坑里, 代码如下
image.png
7. 简单的远程代码提交,以上我们什么都没干,只是做了一些基础路由的处理

七、制作页面左边菜单项

1. 在 antd 中 layout 布局里找到 Menu 组件,复制到 logo下面,这是菜单栏的代码,用之前记得引入,但是这个 layout 布局比较特殊,我们在使用时还要解出他里面的一下 子组件或者孙组件
image.png
2. 由于 Menu 组件没有 href 属性,所以我们可以使用 Link (用link相当于在外面包了一层a标签) 或者编程式导航实现页面跳转,这里我们选择编程式导航,那就给 Menu.Item 加一个点击事件
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343