React应用(基于React脚手架)

使用create-react-app创建react应用

react脚手架

  • xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目

    • 包含了所有需要的配置(语法检查、jsx编译、devServer…)
    • 下载好了所有相关的依赖
    • 可以直接运行一个简单效果
  • react提供了一个用于创建react项目的脚手架库: create-react-app

  • 项目的整体技术架构为: react + webpack + es6 + eslint

  • 使用脚手架开发的项目的特点: 模块化, 组件化, 工程化

创建项目并启动

第一步,全局安装:npm i -g create-react-app

第二步,切换到想创项目的目录,使用命令:create-react-app 项目名

第三步,进入项目文件夹:cd 项目名

第四步,启动项目:npm start

脚手架项目结构

public ---- 静态资源文件夹

​ favicon.icon ------ 网站页签图标

index.html -------- 主页面

​ logo192.png ------- logo图

​ logo512.png ------- logo图

​ manifest.json ----- 应用加壳的配置文件

​ robots.txt -------- 爬虫协议文件

src ---- 源码文件夹

​ App.css -------- App组件的样式

App.js --------- App组件

​ App.test.js ---- 用于给App做测试

​ index.css ------ 样式

index.js ------- 入口文件

​ logo.svg ------- logo图

​ reportWebVitals.js

​ --- 页面性能分析文件(需要web-vitals库的支持)

​ setupTests.js

​ ---- 组件单元测试的文件(需要jest-dom库的支持)

组件模块化方式

方式一

这种方式引入时更简单,感觉也方便些

将文件夹命名为组件名,大写开头

新建文件index.jsx,表示组件定义文件,和文件index.css,用于写样式,如果有其他的js文件,可以自行新建

引入时,直接import xxx/xxx/xx/组件名

方式二

将文件夹命名为组件名,大写开头

新建文件组件名.jsx,表示组件定义文件(定义为jsx文件用于与其他js文件区分),和文件组件名.css,用于写样式(样式污染问题下面解决),如果有其他的js文件,可以自行新建

引入时,直接import xxx/xxx/xx/组件名(文件夹)/组件名(组件)

区别

如果命名的是index,就只需要引入文件名,会自动去找index.js文件

样式模块化

问题

如果不进行样式模块化,可能多个样式文件中的样式就会重叠,发生覆盖

解决

1、使用less编写样式

将所有样式写在模块名下面

模块名{
    xxx{
        
    }
}

2、使用module

将样式文件重命名为index.module.css,

引入时:import 模块名 from '/index.module.css'

使用:className = {模块名.xxx}

功能界面的组件化编码流程(通用)

  • 拆分组件: 拆分界面,抽取组件
  • 实现静态组件: 使用组件实现静态页面效果
  • 实现动态组件
    • 动态显示初始化数据
      • 数据类型
      • 数据名称
      • 保存在哪个组件?
    • 交互(从绑定事件监听开始)
Last Updated:
Contributors: liushun-ing