《CMS后台系统》项目实战 详细分解(三)

简介: 《CMS后台系统》项目实战 详细分解(三)

注册页布局

  • 将登录的代码复制到注册页面
  • 添加验证密码框

微信截图_20221111205852.png


<Form.Item
        name="confirm"
        dependencies={['password']}
        hasFeedback
        rules={[
          {
            required: true,
            message: 'Please confirm your password!',
          },
          ({ getFieldValue }) => ({
            validator(_, value) {
              if (!value || getFieldValue('password') === value) {
                return Promise.resolve();
              }
              return Promise.reject(new Error('The two passwords that you entered do not match!'));
            },
          }),
        ]}
      >
        <Input.Password size="large" prefix={<LockOutlined className="site-form-item-icon" />} placeholder='请再次输入密码'/>
      </Form.Item>
复制代码


将路由跳转修改

<Form.Item>
           <Link to="/login">已有账号?前往登录</Link>
  </Form.Item>
复制代码


将按钮修改为“立即注册”

<Form.Item>
            <Button type="primary" htmlType="submit" block  size='large'>
            立即注册
            </Button>
   </Form.Item>
复制代码


  • 实现效果

微信截图_20221111205933.png


Request封装

1、接口文档

本项目的接口文档:xiaoyaoji.cn/project/1kS…, 密码:zhaowenxian

在src下创建request目录,并在其中创建request.js及api.js。

微信截图_20221111205954.png


2、封装axios请求

request.js:

import axios from 'axios'
// 配置项
const axiosOption = {
    baseURL: 'http://47.93.114.103:6688/manage',
    timeout: 5000
}
// 创建一个单例
const instance = axios.create(axiosOption);
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response.data;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});
export default instance;
复制代码


注意:这里并没有考虑token,后面会添加。

  • 测试baseUrl

   http://47.93.114.103:6688/manage

微信截图_20221111210017.png


3、api.js

api.js暂时可定以下格式,后续项目中再修改:

import request from './request'
export const xxApi = () => request.get('/xx')
复制代码


  • 书写注册接口
// 引入request
import request from './request'
// 注册
export const RegisterApi = (params) => request.post('/register', params)
复制代码


  • 在Register.jsx中引入RegisterApi
import {RegisterApi} from '../request/api'
复制代码


微信截图_20221111210044.png


  • 在 onFinish函数中使用RegisterApi,但是需要先解决跨域问题


1、解决跨域

如果你已经进行了 npm run eject ,建议你直接修改 config>webpackDevServer.config.js

proxy: {
  '/api': {
    target: 'http://47.93.114.103:6688/manage', // 后台服务地址以及端口号
    changeOrigin: true, //是否跨域
    pathRewrite: { '^/api': '/' }
  }
}
复制代码


微信截图_20221111210108.png


http://47.93.114.103:6688/manage 替换成为api。

将 request.js: 的baseUrl进行修改

微信截图_20221111210127.png


// 配置项
const axiosOption = {
  baseURL: '/api',
  timeout: 5000
}
复制代码


  • 在Request.js文件的onFinish函数书写请求。
const onFinish = (values) => {
    RegisterApi({
      username: values.username,
      password: values.password
    }).then(res=>{
      if(res.errCode===0){
        message.success(res.message);
        // 跳到登录页
        setTimeout(()=>navigate('/login'), 1500)
      }else{
        message.error(res.message);
      }
    })
  };
复制代码


微信截图_20221111210154.png


  • 跳转路由是使用的hook。
import {Link, useNavigate} from 'react-router-dom'
if(res.errCode===0){
        message.success(res.message);
        // 跳到登录页
        setTimeout(()=>navigate('/login'), 1500)
  }
复制代码


  • 未注册

微信截图_20221111210215.png


  • 已注册

微信截图_20221111210233.png



目录
相关文章
|
6月前
|
监控 NoSQL Java
十八张图带你入门实时监控系统HertzBeat
我们经常讲:研发人员有两只眼睛,一只是监控平台,另一只是日志平台。在对性能和高可用讲究的场景里,监控平台的重要性再怎么强调也不过分。 这篇文章,我们聊聊开源实时监控告警系统 HertzBeat 赫兹跳动。
十八张图带你入门实时监控系统HertzBeat
|
6月前
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
98 0
|
数据库
【自然框架】CMS之数据库设计
    在园子里也混了三年多,随笔200多,一开始只是想把自己的经验写一下,后来呢弄出来了一个“自然框架”,主要精力就放在了介绍自然框架的思路上面了。随笔多了就发现一个问题:有点乱。虽然博客有分组,但是只支持一级分组,不支持n级的。
1593 0
|
3月前
|
监控 小程序 数据处理
揭秘支付宝小程序性能优化秘籍:从加载到运行,每一步都快人一步!
【8月更文挑战第27天】本文深入探讨了支付宝小程序性能优化的关键技术和策略,包括减少网络请求、利用CDN加速、代码按需加载、图片压缩、懒加载以及性能监控等多方面内容,并提供了实用的示例代码,帮助开发者显著提升小程序的加载速度与运行效率,创造更佳用户体验。
79 1
|
6月前
|
Prometheus 监控 Cloud Native
JVM工作原理与实战(三十三):监控GC过程的工具
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了jstat工具、VisualVM插件、Prometheus + Grafana、GC日志等内容。
228 0
|
6月前
|
Arthas Prometheus 监控
JVM工作原理与实战(二十九):监控内存泄漏的工具
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了解决内存溢出的步骤、Top命令、VisualVM、Arthas、Prometheus + Grafana等内容。
405 0
|
小程序 数据可视化 数据库
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
527 0
|
存储 Java 对象存储
JavaWeb第八章课后题 会话跟踪
JavaWeb第八章课后题 会话跟踪
137 0
《CMS后台系统》项目实战 详细分解(八)
《CMS后台系统》项目实战 详细分解(八)
116 0
《CMS后台系统》项目实战 详细分解(八)
|
前端开发 API
《CMS后台系统》项目实战 详细分解(九)
《CMS后台系统》项目实战 详细分解(九)
107 0
《CMS后台系统》项目实战 详细分解(九)