【react】初学react5-react脚手架搭建中的小众知识

文章目录


前言

终于到脚手架了,真正的react才刚刚开始!握拳.jpg


一、环境下载

安装脚手架:

npm i create-react-app

vscode终端中创建项目:(我的环境下npm create-react-app my-app会报错)

npx create-react-app my-app

安装react插件,这里推荐ES7 React/Redux/GraphQL/React-Native snippets,内置非常多的快捷代码片段,在细节中可以查看,比如'rcc'可以快速生成react组件模版代码。

二、项目结构

网上可以看到的很多关于react项目结构和各文件作用的文章,这里不在做详细解释,只分享作者了解到的一些新知识和重点内容。

react中js jsx文件都可以省略后缀名

public-index.html文件,head中许多配置可以删除,代码及解释如下:

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <!-- %PUBLIC_URL% 代表public文件夹路径 -->
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <!-- 用于开启理想视口,做移动端网页适配 -->
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- 配置浏览器页签+地址栏的颜色,仅适用于手机安卓系统 -->
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <!-- 用于指定网页添加到手机主屏幕后的图标 -->
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
      <!-- 应用加壳时的配置文件 -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <title>React App</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>

  </body>
</html>

根目录下:index.js是入口文件,用ReactDOM.render(document.getElementById('root'))挂载这种写法也可,但新版好像不行了。

javascript 复制代码
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';



const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  // React.StrictMode 严格模式
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

// reportWebVitals 记录页面性能
reportWebVitals();

关于样式

一般会引入less、sass去写样式,如果直接写css样式,要注意不同组件中的作用域,最好是采用模块化的样式:即 .css文件名改为.xx.module.css,模块化引入:

import hello from './Hello.module.css'

调用:className={hello.title}


总结

下篇分享一个代办事项的经典案例

相关推荐
东方小月2 分钟前
Claude Code 完整上手指南:MCP、Skills、第三方模型配置一次搞定
前端·人工智能·后端
XZ探长38 分钟前
基于 Trae Solo 移动办公修复 Vue3 前端服务问题
前端
小程故事多_8038 分钟前
[大模型面试系列] 深度解析ReAct框架,大模型Agent的“思考+行动”底层逻辑
人工智能·react.js·面试·职场和发展·智能体
蝎子莱莱爱打怪1 小时前
Claude Code 省 Token 小妙招:RTK + Caveman 组合拳
前端·人工智能·后端
Momo__1 小时前
Vue 3.6 Vapor Mode:跳过虚拟 DOM,性能极致优化
前端·vue.js
少年白马醉春风丶1 小时前
从零构建 AIGC 无限画布:AIGCCanvasFlow 技术全解析
前端·后端·aigc
OpenTiny社区1 小时前
生成式 UI 藏大招!看似露营案例,实则电商集成 GenUI SDK 干货
前端·ai编程·交互设计
Awu12271 小时前
🍎Vue官方Skills深度解读:那些被悄悄藏起来的宝藏
前端·aigc·claude
小小前端仔LC2 小时前
第五篇:前端任务状态管理与实时反馈 (SSE 客户端篇)
前端
LIO2 小时前
Axios Token 无感刷新机制:原理、实现与最佳实践
前端·axios