react项目级应用框架搭建

本文详细介绍了使用React、TypeScript和Ant Design构建项目框架的过程,包括创建项目、引入antd组件库、集成Redux状态管理、配置路由、处理HTTP请求、设置proxy代理、解决路径问题以及最终的package.json配置。通过这篇文章,读者可以了解到一个完整的React项目搭建步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目目录结构

在这里插入图片描述

记录自己的每个学习足迹

做项目,学习技术,学习框架都少不了项目框架的搭建;这里记录下自己搭建框架的过程。框架技术点react+TypeScript+redux+ant

1. 第一步创建项目

yarn create react-app mini-turn-pc --template typescript
#or
npx create-react-app mini-turn-pc --template typescript

这里使用的是yarn,如果你使用的是 npm也没问题。

然后我们进入项目并启动。

cd mini-turn-pc
yarn start

此时浏览器会访问 http://localhost:3000 ,看到 Welcome to React 的界面第一步就算成功了。

2. 引入 antd 组件库

	yarn add antd

如果在App.tsx引入全部的 antd 组件的样式(对前端性能是个隐患)。一般采用按需加载,按组件来加载所需要的样式。

	yarn add react-app-rewired customize-cra babel-plugin-import

babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件

修改package.json配置

"scripts": {
   
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },

然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。

// const rewireLess = require('react-app-rewire-less');
const {
    override, fixBabelImports, addLessLoader,addWebpackAlias,addDecoratorsLegacy } = require('customize-cra');
const path = require('path')

module.exports = override(
    fixBabelImports('import', {
   
        libraryName: 'antd',
        libraryDirectory: 'es',
        style: true,//为true时支持less解析,自定义主题需要用到 less 变量覆盖功能
    }),
    addLessLoader({
   
        javascriptEnabled: true,
        modifyVars: {
    
            "@primary-color": "#1DA57A" ,// 全局主色
            "@link-color " : "#1DA57A", // 链接色
            "@success-color " : "#52c41a", // 成功色
            "@warning-color " : "#faad14", // 警告色
            "@error-color " : "#f5222d", // 错误色
            "@font-size-base " : "14px", // 主字号
            "@heading-color " : "rgba(0, 0, 0, 0.85)", // 标题色
            "@text-color " : "rgba(0, 0, 0, 0.65)", // 主文本色
            "@text-color-secondary " : "rgba(0, 0, 0, 0.45)", // 次文本色
            "@disabled-color " : "rgba(0, 0, 0, 0.25)", // 失效色
            "@border-radius-base " : "4px", // 组件/浮层圆角
            "@border-color-base " : "#d9d9d9", // 边框色
            "@box-shadow-base " : "0 2px 8px rgba(0, 0, 0, 0.15)", // 浮层阴影
        },
    }),
    addDecoratorsLegacy()
);

修改后重启 yarn start,如果看到一个绿色的按钮就说明配置成功了。
到这里react+ant配置就算完成了。

3. 接下来是加入redux状态管理

在前端3大框架中,不管是哪个都少不了状态管理。在这里使用的是redux,redux不只能在react中使用,也能在angular中配合服务使用。
首先加入包:

	yarn add redux redux-thunk react-redux

若是出现找不到module的情况则需要加入 yarn add @types/react-redux

redux的目录结构
React-Redux是Redux的官方React绑定库。它能够使你的React组件从Redux store中读取数据,并且向store分发actions以更新数据。redux的原理这里不做介绍有兴趣的可自行查阅资料学习。

快捷链接-_-: React-Redux 中文文档.

这里就写上 redux 的demo:
(1) 创建常量文件: redux/constant/count.ts

	export const ADD = 'ADD'
	export const MINUS = 'MINUS'

(2) 创建actions文件: redux/actions/count.ts

  import {
    ADD, MINUS } from "../constant/count"
  export const add = () => {
   
    return {
   
      type: ADD
    }
  }
  export const minus = () => {
   
    return {
   
      type: MINUS
    }
  }
  
  // 异步的action
  export function asyncAdd () {
   
    return (dispatch:any) => {
   
      setTimeout(() => {
   
        dispatch(add())
      }, 2000)
    }
  }
  

(3) 创建reducer文件: redux/reducers/count.ts

	import {
    ADD, MINUS } from "../constant/count"
	const INITIAL_STATE = {
   
	    num: 0
	  }
	  
	export default function counter (state = INITIAL_STATE, action:any) {
   
	  switch (action.type) {
   
	    case ADD:
	      return {
   
	        ...state,
	        num: state.num + 1
	      }
	      case MINUS:
	        return {
   
	          ...state,
	          num: state.num - 1
	        }
	      default:
	        return state
	  }
	}

(4) 创建总文件index用来统一管理reducer文件 : redux/reducers/index.ts
(在actions和constant目录下都可以创建一个index统一来管理)

	import {
    combineReducers } from 'redux';
	import counter from './count';
	
	export default combineReducers({
   
	    counter
	})
	```
	(5) 创建store文件 :   redux/store.ts
	```javascript
	import {
    createStore, combineReducers,applyMiddleware  } from "redux";
	import thunk from 'redux-thunk';
	import reducers from "./reducers/index";
	
	const middlewares = [thunk]
	
	// 全局就管理一个store
	export const store = createStore(
	    reducers,
	    applyMiddleware(...</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值