【React】极客园--01.项目前置准备

news2024/11/25 2:31:39

项目搭建

基于CRA创建项目

CRA是一个底层基于webpack快速创建React项目的脚手架工具

# 使用npx创建项目
npx create-react-app react-jike

# 进入到项
cd react-jike

# 启动项目
npm start

在这里插入图片描述

调整项目目录结构

-src
  -apis           项目接口函数
  -assets         项目资源文件,比如,图片等
  -components     通用组件
  -pages          页面组件
  -store          集中状态管理
  -utils          工具,比如,token、axios 的封装等
  -App.js         根组件
  -index.css      全局样式
  -index.js       项目入口

src/index.js

import React from 'react'
import ReactDOM from 'react-dom/client'
import './index.scss'
import './App.js'

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App/>
  </React.StrictMode>
)

src/App.js

const App = () => {
  return <div>this is app</div>
}

export default App

使用scss预处理器

SASS 是一种预编译的 CSS,支持一些比较高级的语法,可以提高编写样式的效率,CRA接入scss非常简单只需要我们装一个sass工具

实现步骤

  1. 安装解析 sass 的包:npm i sass -D
  2. 创建全局样式文件:index.scss
body {
  margin: 0;
  div {
    color: blue;
  }
}

组件库antd使用

我们的项目是一个传统的PC管理后台,有现成的组件库可以使用,帮助我们提升开发效率,其中使用最广的就是antD

Ant Design of React - Ant Design
实现步骤

  1. 安装 antd 组件库:npm i antd
  2. 导入 Button 组件
  3. 在 Login 页面渲染 Button 组件进行测试

测试Button
pages/Login/index.jsx

import { Button } from 'antd'

const Login = () => {
  return <div>this is login<Button type='primary'>test</Button></div>
}
export default Login

在这里插入图片描述

配置基础路由

单页应用需要对应的路由支持,我们使用 react-router-dom 最新版本

实现步骤

  1. 安装路由包 npm i react-router-dom
  2. 准备 LayoutLogin俩个基础组件
  3. 配置路由

代码实现
pages/Layout/index.js

const Layout = () => {
  return <div>this is layout</div>
}
export default Layout

pages/Login/index.js

const Login = () => {
  return <div>this is login</div>
}
export default Login

router/index.js

import { createBrowserRouter } from 'react-router-dom'

import Login from '../pages/Login'
import Layout from '../pages/Layout'

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

export default router

index.js

import React from 'react'
import ReactDOM from 'react-dom/client'
import './index.scss'
import router from './router'
import { RouterProvider } from 'react-router-dom'

ReactDOM.createRoot(document.getElementById('root')).render(
    <RouterProvider router={router} />
)

配置别名路径

项目背景:在业务开发过程中文件夹的嵌套层级可能会比较深,通过传统的路径选择会比较麻烦也容易出错,设置路径别名可以简化这个过程

路径编译配置

  1. 安装 craco 工具包
  2. 增加 craco.config.js 配置文件
  3. 修改 scripts 命令
  4. 测试是否生效
npm i @craco/craco -D
const path = require('path')

module.exports = {
  // webpack 配置
  webpack: {
    // 配置别名
    alias: {
      // 约定:使用 @ 表示 src 文件所在路径
      '@': path.resolve(__dirname, 'src')
    }
  }
}
"scripts": {
  "start": "craco start",
  "build": "craco build",
  "test": "craco test",
  "eject": "react-scripts eject"
}
import { createBrowserRouter } from 'react-router-dom'

import Login from '@/pages/Login'
import Layout from '@/pages/Layout'

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

export default router

VsCode提示配置

实现步骤

  1. 在项目根目录创建 jsconfig.json 配置文件
  2. 在配置文件中添加以下配置

代码实现

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

:::warning
说明:VSCode会自动读取jsconfig.json 中的配置,让vscode知道@就是src目录
:::

使用gitee管理项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flume基础教程

Apache Flume教程 资料来源&#xff1a;Apache Flume - Introduction (tutorialspoint.com) Flume是一个标准的、简单的、健壮的、灵活的、可扩展的工具&#xff0c;用于将从各种数据生产者(web服务器)中所产生的数据抽取到Hadoop中。在本教程中&#xff0c;我们将使用简单的…

内部类介绍

内部类&#xff08;Inner Class&#xff09;是在另一个类的内部定义的类。它可以访问外部类的所有成员&#xff0c;包括私有成员。内部类有两种主要形式&#xff1a;局部内部类&#xff08;定义在方法内部&#xff09;和成员内部类&#xff08;定义在类的内部&#xff0c;但不在…

《Nest系列 - 2. Nest 代码生成器,让你告别base代码书写!!!》

紧接上文我们做一些核心梳理 核心梳理&#xff1a; /controllers目录&#xff1a;存放控制器文件&#xff0c;每个控制器对应一组路由和请求处理方法。控制器处理来自客户端的HTTP请求&#xff0c;并返回相应的响应。/modules目录&#xff1a;存放模块文件&#xff0c;每个模块…

第十一章:接口

接口 文章目录 接口一、简介1.1 接口是什么1.2 接口的作用1.3 接口的开发与调用1.4 接口的组成 二、RESTful API三、json-server四、接口测试工具五、接口的创建 一、简介 1.1 接口是什么 接口是前后端通信的桥梁 简单理解&#xff1a;一个接口就是 服务中的一个路由规则&am…

7.华为交换机端口配置链路聚合Eth-trunk

目的&#xff1a;两台华为交换机端口配置链路聚合 LSW1配置 [Huawei]interface Eth-Trunk 1 [Huawei-Eth-Trunk1]q [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]eth-trunk 1 [Huawei-GigabitEthernet0/0/1]int g0/0/2 [Huawei-GigabitEthernet0/0/2]eth-trunk 1LSW2配置…

产品经理用好AI,最关键的一个点

前言 AI大模型已经越来越强大了&#xff0c;我们要怎么才能把它变成生产力工具&#xff1f;根据最近的一个调研发现&#xff0c;即使是在产品经理这个群体里&#xff0c;能真正用好AI去激发生产力的人也只占6%&#xff0c;也就是说其实有94%的人都还不能很好的把生成式AI转化为…

个人博客测试用例设计

个人博客测试用例设计 个人博客测试用例 分别从功能、性能、安全、兼容及界面分别展开 个人博客测试用例

VST3音频插件技术介绍

一.概述 1.VST3介绍 VST3&#xff08;Virtual Studio Technology 3&#xff09;是一种音频插件格式&#xff0c;由Steinberg公司开发&#xff0c;用于在数字音频工作站&#xff08;DAW&#xff09;中使用。VST3插件可以是模拟合成器、鼓机、混响器、压缩器等多种类型的音频处理…

文件系统崩溃一致性、方法、原理与局限

前言 先提几个问题&#xff1a;什么是文件系统崩溃一致性&#xff1f;为什么会出现文件系统崩溃一致性问题&#xff1f;有哪些方法可以解这个问题&#xff1f;它们各自又有哪些局限性&#xff1f; window系统电脑异常后会蓝屏、手机死机卡顿后我们会手动给它重启&#xff0c;大…

VirtualStudio配置QT开发环境

环境 VirtualStudio2022Qt5.12.10 安装msvc工具链&#xff08;这一步不是必须的&#xff09; 打开virtual studio&#xff0c;打开Virtual Studio Installer界面选择要安装的msvc版本&#xff0c;点击安装 安装VirtualStudio扩展 在线安装 打开virtual Studio&#xff0c;…

Blurry - hackthebox

简介 靶机名称&#xff1a;Blurry 难度&#xff1a;中等 靶场地址&#xff1a;https://app.hackthebox.com/machines/605 本地环境 靶机IP &#xff1a;10.10.11.19 linux渗透机IP(kali 2024.2)&#xff1a;10.10.16.17 windows渗透机IP&#xff08;windows11&#xff0…

excel宏处理魔法代码,实现按月份统计销售额和按产品统计销售额

目录 前言第一步&#xff1a;打开文件第二步&#xff1a;选中左侧任意一个sheet双击第三步&#xff1a;粘贴 魔法代码第四步&#xff1a;点击菜单栏 运行>运行子程序和用户窗口第五步&#xff1a;切换回文件&#xff0c;我们就可以看到已经生成了月份销售额统计和产品销售额…

合合信息文档解析工具重磅升级!智能识别,效率翻倍!

官.网地址&#xff1a;合合TextIn - 合合信息旗下OCR云服务产品 智能文档处理(IDP)是利用人工智能技术,自动从复杂的非结构化和半结构化文档中抽取关键数据,并将其转换成结构化数据的技术。能够自动识别、提取并结构化处理文档中的关键信息。这种技术通常基于自然语言处理&…

经验分享,两个在线图片处理网站在线抠图和删除不需要的元素

分享两个好用的在线图片处理网站 1.在线抠图&#xff0c;图片背景消除 网址&#xff1a;https://www.remove.bg/zh 2.删除图片中不需要的对象、人物和文本。 网址&#xff1a;https://magicstudio.com/zh/magiceraser/

DLS平台:惠誉全球经济展望——今年调增至2.6%,明年调减!

摘要 尽管全球货币政策逐渐转向宽松&#xff0c;惠誉国际评级&#xff08;Fitch Ratings&#xff09;在最新的《全球经济展望》中对2024年全球经济增长进行了上调。然而&#xff0c;由于美国经济增速放缓和其他因素的影响&#xff0c;2025年的全球经济增长预期则被下调。这篇文…

最新Prompt预设词分享,DALL-E3文生图+文档分析

使用指南 直接复制使用 可以前往已经添加好Prompt预设的AI系统测试使用&#xff08;可自定义添加使用&#xff09; 支持GPTs SparkAi SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。支持GPT-4o…

从零开始:精通基于大型语言模型(LLM)的Agent应用开发

一、引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Model&#xff0c;简称LLM&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心技术之一。这些模型&#xff0c;如GPT、BERT等&#xff0c;通过大量的文本数据训练…

pop链详细分析、构造(以[NISACTF 2022]babyserialize为例)

目录 [NISACTF 2022]babyserialize &#xff08;一&#xff09;理清pop链&#xff08;链尾 链头&#xff09;&#xff0c;标注步骤 1. 先找eval、flag这些危险函数和关键字样&#xff08;这是链尾&#xff09; 2.往eval()上面看 3.往$bb()上面看 4.往strtolower()上面看 …

自制调色小工具给图片加滤镜,修改图片红、绿、蓝通道及亮度,修改图片颜色

上篇&#xff1a; 上篇我们给地图添加了锐化、模糊等滤镜&#xff0c;这篇来写一个小工具给图片调色。 调色比锐化等滤镜要简单许多&#xff0c;直接拿到像素值修改即可。不需要用到卷积核。。。(*^▽^*) 核心原理就是图像结构&#xff0c;使用context.getImageData获取图像像…

热词排序算法——贝叶斯均值法

热词排序算法——贝叶斯均值法 贝叶斯均值法基本思想假设变量举例说明python实现 贝叶斯均值法 当前&#xff08;例如今天&#xff09;的某个词出现的频率相比于历史发生突增&#xff0c;那么这个词的热度上升。 当某个词历史出现的次数为0&#xff0c;而当前出现的次数为100…