当前位置: 首页 > article >正文

React学习笔记14

一、使用vite创建项目

npm create vite 项目名

创建之后运行

npm i
npm run dev

二、按照业务规范整理项目目录(重点src目录)

下面是各个文件夹的作用 

三、安装SCSS

在Vue开发中SCSS非常的常用,在CRA项目中如何接入SCSS呢?和Vue中一样:

npm install sass -D

 然后将项目中的css文件改为scss文件(后缀)

四、安装Ant Design

Ant Design是蚂蚁金服出品的社区使用最广的React PC组件库,内置了常用的现成组件,和element Plus是同类型的东西

npm install antd --save

安装完成之后修改src/App.js,引入antd的按钮组件

import React from 'react';
import { Button } from 'antd';

const App = () => (
  <div className="App">
    <Button type="primary">Button</Button>
  </div>
);

export default App;

五、配置基础路由Router

安装路由包

npm install react-router-dom

创建路由结构

import Login from '../pages/Login'
import {createBrowserRouter} from 'react-router-dom'

const router = createBrowserRouter([
    {
        path:'/',
        element:<Login></Login>
    }
])

export default router

router>index.jsx

 六、封装request请求模块

import axios from 'axios'

const request = axios.create({
    baseURL:'',
    timeout:5000
})

// 添加请求拦截器
// 在请求发送之前做拦截,插入自定义配置[参数的处理]
request.interceptors.request.use((config)=>{
    return config
},(error)=>{
    return Promise.reject(error)
})

// 添加响应拦截器
request.interceptors.response.use((response)=>{
    // 状态码为2xx的触发该函数
    return response.data
},(error)=>{
    // 状态码不是2xx的触发该函数
    return Promise.reject(error)
})

export {request}

utils>request.jsx

在index.jsx中统一导出

import {request} from './request'

export {
    request
}

 utils>index.jsx

七、Redux的配置

安装

npm i react-redux @reduxjs/toolkit

创建文件结构

import { createSlice } from '@reduxjs/toolkit'

const userStore = createSlice({
    name: "user",
    initialState: {
        token: ''
    },
    reducers: {
        setToken(state, action) {
            state.token = action.payload
        }
    }
})


// 解构
const {setToken}=userStore.actions

// 获取reducer函数
const useReducer = userStore.reducer

export {setToken}

export default useReducer

 store>modules>user.jsx

// 组合Redux子模块
import {configureStore} from '@reduxjs/toolkit'
import userReducer from './modules/user'

export default configureStore({
    reducer:{
        user:userReducer
    }
})

store>index.jsx

绑定至组件

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import { RouterProvider } from 'react-router-dom'
import router from './router'
import { Provider } from 'react-redux'
import store from './store'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <Provider store={store}>
      <RouterProvider router={router}></RouterProvider>
    </Provider>
  </StrictMode>,
)

src>main.jsx

下一章:项目打包与打包优化


http://www.kler.cn/a/581453.html

相关文章:

  • 从零构建 KNN 分类: sklearn 与自定义实现对比
  • JMeter使用BeanShell断言
  • 训练大模型LLM选择哪种开发语言最好
  • 前端开发中的设计模式:策略模式的应用与实践
  • C#的判断语句总结
  • Ubuntu开荒
  • llvm数据流分析
  • 【1688】崖山集群YAC安装备忘
  • 【软件设计】23 种设计模式解析与实践指南
  • bash---括号之间的区别
  • 『PostgreSQL』PGSQL备份与还原实操指南
  • kubernetes——part3-5 核心概念 Service
  • 《基于深度学习的图像修复技术研究与应用-图像修复》—3000字论文模板
  • golang从入门到做牛马:第十五篇-Go语言切片(Slice):动态数组的“魔法”
  • 【编程题】7-6 列出连通集
  • 电力行业能源管理系统(Energy Management System, EMS)的技术实现方案
  • gitlab add an ssh key 多个ssh配置
  • 晋升系列4:学习方法
  • 【Go | 从0实现简单分布式缓存】-6:GeeCache总结
  • 手写linklist实现查找插入删除以及获取链表长度