iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >使用React和ReduxToolkit实现用户登录功能
  • 227
分享到

使用React和ReduxToolkit实现用户登录功能

ReactRTK实现登录功能ReactReduxToolkit登录 2023-05-19 17:05:45 227人浏览 独家记忆
摘要

目录一、在utils创建loadable.tsx文件二、在router文件下创建routes.tsx三、在index.tsx中配置四、App.tsx文件配置axiOS二次封装请求封装

一、在utils创建loadable.tsx文件

这里是tsx文件,不是ts文件,因为ts文件不识别jsx语法

因为loadable是异步加载,返回的是promise,所以需要对返回的promise进行类型限制

import  Loadable  from "React-loadable.tsx";
const withLoadable = (component:()=>Promise<any>)=>{
        return Loadable({
            loader:component,
            loading:()=><div>加载中</div>,
        })
}
export default withLoadable

二、在router文件下创建routes.tsx

这里是tsx文件,不是ts文件,因为ts文件不识别jsx语法

  • 导入RouteObject
  • 导入withLoadable.tsx文件
  • 导入Login组件
    import {RouteObject} from 'react-router-dom'
    import withLoadable from 'withLoadable.tsx文件地址'
    const Login = withLoadable(()=>import('Login.tsx地址'))
    const routes:Array<RouteObject> = [
        {
            path:'/login'
            element:</Login>
        }
    ]

三、在index.tsx中配置

导入Browser

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { BrowserRouter } from 'react-router-dom'
const root = ReactDOM.createRoot(
  document.getElementById('root') as htmlElement
);
root.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
);

四、App.tsx文件配置

useRoutes是Hook组件

import {useRoutes} from 'react-router-dom'
import routes from 'routes地址'
import React from 'react';
function App() {
  return useRoutes(routes)
}
export default App;

axios二次封装

导入

import axios,{InternalAxiosRequestConfig,AxiosResponse,AxiosError} from 'axios'
import {TOKEN_KEY} from '../utils/contant'
import {getToken,removeToken} from '../utils/h5Stroe'
import {message} from 'antd'
import {REQUESTURLERROR,TOKENVALDATE} from '../utils/contant'

响应拦截器封装:

导入axios的类型声明:AxiosResponse

newAxios.interceptors.response.use((response:AxiosResponse)=>{
    return response
},(error:AxiosError)=>{
    if(error.response){
        switch(error.response.status){
            case 404:
                message.warning(REQUESTURLERROR)
                break;
            case 401:
                message.warning(TOKENVALDATE)
                removeToken(TOKEN_KEY)
                break
        }
    }
})

请求拦截器的封装

导入axios的类型声明:InternalAxiosRequestConfig

// 请求拦截器
newAxios.interceptors.request.use((req:InternalAxiosRequestConfig)=>{
        req.headers.Authorization =  getToken(TOKEN_KEY)
        return req
})

请求封装

创建接口文件对请求参数进行类型限制,下面有user.ts文件

export interface IUser{
    userName:string
    passWord:Number
}

封装登录请求

import request  from "../../utils/axiosapi";
import {IUser} from '../../types/users'
export default {
    login:(data:IUser)=>request.post('/users/login',data)
}

组件配置

import React from 'react'
import {FORM,Button,Card,Input, message} from 'antd'
import { UserOutlined, LockOutlined} from '@ant-design/icons'
import $api from '../api/index'
import {IUser} from '../types/users'
import * as contant from '../utils/contant'
import {setToken} from '../utils/h5Stroe'
import {TOKEN_KEY} from '../utils/contant'
import {useNavigate} from 'react-router-dom'
export default function Login() {
  const nav = useNavigate()
  const loginApi = async(arg:IUser)=>{
      const result = await $api.user.login(arg)
      console.log(result);
        if(result.data.code){
          setToken(TOKEN_KEY,result.data.token)
          message.success(contant.LoginSuccess)
          nav('/')
        }
  }
  return (
    <div>
      <Card style={{width:'500px'}}>
        <Form onFinish={loginApi}>
          <Form.Item label='账号' name='username' rules={[{ required:true, message:contant.USERNOTNULL}]}>
            <Input prefix={<UserOutlined></UserOutlined>} placeholder='请输入用户名'></Input>
          </Form.Item>
          <Form.Item label='密码' name='password' rules={[{ required:true, message:contant.PASSWORDNOTNULL}]}>
            <Input prefix={<LockOutlined></LockOutlined>} placeholder='请输入密码'></Input>
          </Form.Item>
          <Form.Item>
            <Button type='primary' htmlType='submit'>登录</Button>
          </Form.Item>
        </Form>
      </Card>
    </div>
  )
}

到此这篇关于使用React和Redux Toolkit实现用户登录功能的文章就介绍到这了,更多相关React RTK实现登录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用React和ReduxToolkit实现用户登录功能

本文链接: https://www.lsjlt.com/news/213538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用React和ReduxToolkit实现用户登录功能
    目录一、在utils创建loadable.tsx文件二、在router文件下创建routes.tsx三、在index.tsx中配置四、App.tsx文件配置axios二次封装请求封装...
    99+
    2023-05-19
    React RTK实现登录功能 React Redux Toolkit登录
  • 使用servlet实现一个用户登录功能
    这篇文章给大家介绍使用servlet实现一个用户登录功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。用servlet来简单实现一个用户登录的小程序。 首先,servlet也是一个JAVA类,新建一个JAVA类,它直接...
    99+
    2023-05-31
    servlet 用户登录
  • Java Web实现用户登录功能
    文章目录 一、纯JSP方式实现用户登录功能(一)实现思路1、创建Web项目2、创建登录页面3、创建登录处理页面4、创建登录成功页面5、创建登录失败页面6、编辑项目首页 (三)测试结果 ...
    99+
    2023-10-02
    java 前端 servlet
  • android用户登录功能怎么实现
    要实现Android用户登录功能,可以采取以下步骤:1. 创建一个登录页面,包括用户名和密码的输入框,以及登录按钮。2. 在Main...
    99+
    2023-09-13
    android
  • QT实现用户登录注册功能
    本文实例为大家分享了QT实现用户登录注册的具体代码,供大家参考,具体内容如下 1、login.h #ifndef LOGIN_H #define LOGIN_H #include ...
    99+
    2022-11-13
  • vue.js怎么实现用户登录功能
    这篇文章将为大家详细讲解有关vue.js怎么实现用户登录功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建...
    99+
    2023-06-14
  • 怎么用Golang实现用户的登录功能
    本篇内容主要讲解“怎么用Golang实现用户的登录功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Golang实现用户的登录功能”吧!一、使用Golang设计用户登录页面在Golang中...
    99+
    2023-07-06
  • springmvc+spring+mybatis实现用户登录功能(上)
    由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教。一、代码结构整个项目的代码结构如图所示: c...
    99+
    2023-05-31
    springmvc spring mybatis
  • JavaWeb实现用户登录与注册功能
    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础 ...
    99+
    2022-11-12
  • 纯JSP方式实现用户登录功能
    一、纯JSP方式实现用户登录功能 (一)实现思路 登录页面login.jsp,输入用户名和密码后,跳转到登录处理页面doLogin.jsp进行业务逻辑处理,登录成功,跳转到登录成功页面success....
    99+
    2023-09-28
    java javascript 学习
  • Java-web实现用户登录、注册功能
    源码在资源里 目录 环境搭建数据库 用户登录需求分析代码实现编写UserMapper类编写User类编写loginServlet类编写login.html编写login.css ...
    99+
    2023-10-10
    java 前端 servlet
  • php如何实现一个用户登录功能
    这篇“php如何实现一个用户登录功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现一个用户登录功能”文章吧。假...
    99+
    2023-07-05
  • Node.js+Express+MySql实现用户登录注册功能
    本文实例为大家分享了Node.js实现用户登录注册的具体代码,供大家参考,具体内容如下 IDE:WebStorm 工程目录: 数据库表 Login.js: var express=r...
    99+
    2022-06-04
    用户登录 功能 js
  • QT如何实现用户登录注册功能
    这篇文章主要介绍“QT如何实现用户登录注册功能”,在日常操作中,相信很多人在QT如何实现用户登录注册功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”QT如何实现用户登录注册功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-02
  • 详解使用php来实现简单的用户登录功能
    PHP是一种广泛使用的服务器端脚本语言,被广泛应用于开发Web应用程序,其中实现用户登录功能是一项基础要求。在这篇文章中,我们将介绍如何使用PHP实现简单的用户登录功能。首先,我们需要一个登录页面。下面是一个非常简单的HTML登录页面:&l...
    99+
    2023-05-14
  • 使用vue怎么实现一个用户登录切换功能
    今天就跟大家聊聊有关使用vue怎么实现一个用户登录切换功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的...
    99+
    2023-06-14
  • 如何使用php来实现简单的用户登录功能
    这篇文章主要介绍“如何使用php来实现简单的用户登录功能”,在日常操作中,相信很多人在如何使用php来实现简单的用户登录功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用php来实现简单的用户登录功能...
    99+
    2023-07-05
  • Spring AOP实现用户登录统一验证功能
    目录一. 用户登陆统一验证功能1.1 用户登录验证的几种方法1.2 创建前端页面1.3 创建登陆方法和欢迎进入方法1.4 自定义一个拦截器1.5 验证拦截功能1.6 小结一. 用户登...
    99+
    2023-01-14
    Spring AOP用户登录统一验证 Spring AOP用户登录验证 Spring AOP用户登录
  • SpringMVC使用注解实现登录功能
    本文实例为大家分享了SpringMVC使用注解实现登录的具体代码,供大家参考,具体内容如下 一、使用Component\Controller\Service\Repository四大...
    99+
    2022-11-13
  • 怎么使用phpajson实现登录功能
    今天小编给大家分享一下怎么使用phpajson实现登录功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、什么是phpaj...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作