Giter VIP home page Giter VIP logo

epeejs / epee-react-admin Goto Github PK

View Code? Open in Web Editor NEW
89.0 3.0 12.0 1.59 MB

🗡简洁、高效、易扩展的 React 快速开发模板,基于布局设计,纯 Hooks 开发,包含中后台应用常用功能

Home Page: https://epee.netlify.app/

HTML 1.24% TypeScript 87.38% JavaScript 4.82% Dockerfile 0.19% Shell 0.58% Less 5.79%
react react-hooks antd create-react-app typescript react-admin

epee-react-admin's Introduction

epee-react-admin

中后台应用模版,使用 CRA 作为基础模版搭建,简单、易扩展,且不限制技术栈

使用 webpack5 分支 wp5

配合 CI 自动化测试更详细文档参考 前端自动化测试

💡 预览

水平布局 (master):https://epee.netlify.app/ hlayout

垂直布局 (dev-vertical-layout):https://vepee.netlify.app/ vlayout

🚀 特性

包含 CRA 所有功能,同时包含以下功能

  • 基于布局模式开发
  • 根据路由配置生成菜单
  • antd 主题及按需加载
  • 通用权限控制及路由 Hook
  • 支持 less css module
  • 提供常用布局组件
  • 严格的 lint 规则及提交检查

✨ 技术栈

react、antd、@reduxjs/toolkit、@epeejs/pro-layout

🏃 开始

yarn
yarn start

为了更好的开发体验,你还需要安装以下 VSCode 插件

  • Prettier - Code formatter
  • ESLint

推荐安装

  • Auto Close Tag
  • Auto Rename Tag
  • CSS Modules
  • Paste JSON as Code
  • ES7 React/Redux/GraphQL/React-Native snippets

🌳 目录结构

├── public
├── src
│   ├── assets               # 本地静态资源
│   ├── components           # 业务通用组件
│   ├── config               # 配置目录,包含主题、路由配置
│   ├── hooks                # 通用 hook
│   ├── layouts              # 通用布局,分为页面布局、路由布局
│   ├── store                # 状态库
│   │   └── slice            # redux slice 目录
│   ├── pages                # 业务页面入口
│   ├── services             # 后台接口服务
│   ├── utils                # 工具库
│   ├── index.less           # 全局样式
│   └── index.tsx            # 全局入口
├── README.md
└── package.json

页面代码结构推荐

参考 antd pro 规范,简单讲就是组件文件夹大写驼峰命名,分组文件夹小写中线(-)连接,路由组件应该是被打平的

⚒ 开发

新增页面

这里的『页面』指配置了路由,能够通过链接直接访问的模块

1. 新增 tsx、less 文件

src
  models
  pages
+   NewPage.tsx
+   NewPage.module.less

NewPage.tsx 部分代码如下:

export default function NewPage(props: NewPageProps) {
  return <div className={styles.wrap}>New Page</div>;
}

可以键入 tsrfc 快速生成模板代码,后面直接列出代码片段快捷键,不再说明

2. 将页面加入路由

修改 config/routes.ts 内容

export const routes: RouteConfig[] = [
  {
    path: '/',
    component: PageLayout,
    routes: [
      {
        path: '/form',
        name: '表单页',
        icon: FormOutlined,
        routes: [{ path: '/form/basic-form', name: '基础表单', component: BasicForm }],
      },
      ...
+     {
+       path: '/new',
+       name: '新页面',
+       icon: FileOutlined,
+       component: NewPage,
+     },
    ]
  }
]

修改好之后运行,可以看到如下效果

preview

布局与路由

参考 @epeejs/pro-layout 使用文档

权限管理(待补充)

epee-react-admin's People

Contributors

dependabot[bot] avatar dobble11 avatar leeycode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

epee-react-admin's Issues

获取数据的 Loading 使用 easy peasy 应该怎么做

RT,比如 antd 的 table 获取数据,应该怎么做 loading 的处理,我看这里面在request 做了拦截,这样的话就导致请求失败的时候获取数据的 thunk 并没有起到作用,方便沟通一下吗

太赞了!你写的代码比Antd Pro官方的范例代码还实用

我看了Antd Pro的官方代码,他们过分绑定到UMI框架上,UMI框架过度封装,坑很多,担心后期UMI不会持续维护,所以我不敢用。

Antd Pro的官方源码,如果脱离了UMI框架,连路由的菜单都不能正常跑起来。

然后,我终于搜索到你这个源码,没有依赖UMI,直接用Create React App,所有技术栈也比较通用的方案。这一点,比Antd Pro官方源码好多了。

另外,我看到你实用了epeejs/react-components/RouterLayou,这个非常赞,好像是个新的库,不知道你怎么知道用这个这么棒的组件。

谢谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.