Giter Club home page Giter Club logo

reggie-take-out's Introduction

项目介绍

瑞吉外卖 管理员前端系统

项目来源自B 站视频 - 黑马程序员

原本视频里是前后端不分离的 Spring Boot 项目,本次实现前端分离作为学习。同时用 React + Ant-Design 来重写

项目启动

npm install # 加载依赖
npm run dev # 启动构建工具

技术栈

  • React
  • Ant-Design UI
  • Axios
  • React-Router
  • Vite
  • Sass

学习记录

路由,基本 UI 创建 版本

  • 使用了 react-router 对单页应用视为多页管理
  • 使用了 Ant-Design 提供的组件,节省手写 html 元素
  • 使用了 sass,方便扩展选择器和变量应用

目前存在的问题

  1. 导入语法使用相对路径,如../../这样的引用,并不直观路径在哪。我们需要配置路径别名,比如@/代表是 src/路径下的文件
  2. 登录和主页并没有请求后端
  3. 主页需要鉴权,比如没有登录却输入浏览器 url 到/路径,可以正常进入

子路由、主题、别名、表格版本

项目基本结构

  • dist - 构建后
  • node_modules - node 模块(包)
  • public - 静态资源
  • src - 项目代码
    • assets - 图片
    • pages - 页面
    • utils - 工具类
    • App.jsx - 主应用
    • index.css - 全局样式
    • main.jsx - 项目入口
  • index.html - 构建工具打包模板
  • jsconfig.json - vscode 解析 js 文件配置选项
  • link.md - 资源链接
  • note.md - 笔记
  • package-lock.json - 版本控制文件 npm
  • package.json - node 项目描述文件
  • README.md - 项目说明
  • vite.config.js - 构建工具配置文件
  • yarn.lock - 版本控制文件 yarn

配置别名

给 Vite 构建工具配置别名后,解决了导入路径会有很多../问题

alias: {
 "@": join(dirname(fileURLToPath(import.meta.url)), "src")
},

此时,构建工具帮我们将@开头路径转换成项目的 src 开头路径

这只是构建工具可以识别。vscode 还需要配置 jsconfig.json 作为 js 项目解析

// 给vscode编辑器做解析
{
  // 当js文件被解析处理时
  "compilerOptions": {
    // 基本路径是当前项目根目录
    "baseUrl": "./",
    // 路径别名
    "paths": {
      // @/开头下所有文件都映射为src/下所有文件
      "@/*": ["src/*"]
    }
  }
}

这样 vscode 就可以解析@/开头的路径了

子路由

路由可以嵌套

  1. 方便前端路由路径呈现直观的父子关系
  2. 方便根据 url 子路由组件渲染

主题

项目当种有两个主题色#ffc200#333333,为了能方便复用这两个颜色,同时能和 ant-design 的设计结合,需要使用ConfigProvider组件,将我们的主色在应用当中配置。

同时,配置 ant-design UI 国际化为简体中文地区

表格组件

这次使用了面包屑、表格、分页器组件,面包屑来显示应用层级关系。

在 ant-design 的表格组件是个非常有效率的工具,根据列配置项来渲染数据,方便数据以 js 对象进行展示,避免手动循环遍历。同时包括了分页器,使得数据改变更为高效,将会在后面展示。

下一步

  • 完成登录接口
  • 使用 Axios 进行网络接口封装使用(栏截器、实例化)
  • 完成菜品管理页面
  • 404 页面

登录接口版本

使用 Axios 对网络请求进行实例化配置

  • 每次请求不需要带固定的 url 前缀
  • 不需要每次手动写请求携带证书
  • 对请求做拦截处理,可以将未登录状态跳转到登录页

调用后端接口时,只需要写 axios 实例进行请求。

登录接口

将用户信息存储到 localStorage,后续可以通过这个鉴权,或是作为 State 用户数据引用

同时完成了菜品管理页面,后续调用接口刷新前端数据。

父路由可以通过 context 传递给子路由,这样可以把 state 传递过来,无需手动写 Context。

将路由除指定 url 外,匹配通配模式,映射为 404 页面。

完成员工管理的所有功能,数据主要通过表格配置项的应用。

reggie-take-out's People

Contributors

taoister39 avatar

Stargazers

 avatar  avatar 老君山的喵 avatar  avatar Wen Hao avatar

Watchers

 avatar

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.