脚手架
脚手架大约 2 分钟
react 脚手架
create-react-app
:用来帮助程序员快速创建一个 React 模板项目的 npm 包
- 包含了所有需要的配置(语法检查、JSX 编译、devServer)
- 下载好了所有相关依赖
- 可以直接运行一个简单效果
整体技术架构为:react + webpack + es6 + eslint
使用脚手架开发项目的特点:模块化、组件化、工程化
创建项目并启动
- 全局安装 cmd 指令:
npm i -g create-react-app
- 切换到创建项目的目录,使用 cmd 指令:
create-react-app hello-react
- 等待项目创建好之后进入项目文件夹:
cd hello-react
- 启动项目: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 库的支持)
CSSModule
为了避免 CSS 全局污染,在 jsx 文件中引入xxx.module.css
形成样式隔离
引入到 jsx 文件中的module.css
文件默认生成一张映射表,css 中真正书写的样式名为 key,注入到页面中被隔离的样式名(key+hash)为 value
可以通过这种方法获取 CSS 样式名
注意:标签选择器不能被 module 隔离,最外部类名需使用类选择器 orID 选择器包裹
.active {
border: 1px solid red;
color: blue;
}
// style: { active: 'active+随机hash生成的样式名' }
import style from "./demo.module.css";
function Demo() {
// ...
return <div className={style.active}></div>;
}
总结:
- 尽量使用 class 来定义样式
- CSSModule 最大特色是作用于本地,只用单个类来定义样式最佳
- 尽量避免组合选择器的运用,有利于提高选择器性能
- 可以借助
:global
和标签选择器来声明全局样式,这两种写法隔离都会失效 - 使用 class 命名时,尽量避免折中或
-
,尽量选择_
或__
连接 - 尽量借助 CSS 的自定义属性来代替 CSS 处理器的变量