# react 笔记
**Repository Path**: Webfrontendtechnology/react_notes
## Basic Information
- **Project Name**: react 笔记
- **Description**: react 笔记学习笔记
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-02-27
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 创建React项目
npx create-react-app
cd react-demo
npm start
## 环境介绍
node_modules:非常大
public:入口文件
src:源码文件
## React基础知识
### JSX语法介绍
JSX语法:JavaScript + XML语法(HTML)
解读jsx语法:遇到<>按照HTML语法解析,遇到{}按照JavaScript
### 元素渲染
### 组件
组件的后缀可以是js,也可以是jsx
一个React项目,是由成千上万个组件组成
### porps属性
组件的复用性很重要
### 事件处理
1. this问题
2. 向事件处理程序传递参数
### State
### React生命周期函数
随着我们对React理解和使用越来越多,生命周期的参考价值越来越高
函数列表:
componentWillMount:在组件渲染之前执行
componentDidMount:在组件渲染之后执行
shouldComponentUpdate:返回true和false,true代表允
许改变,false代表不允许改变
componentWillUpdate:数据在改变之前执行(state,props)
componentDidUpdate:数据修改完成(state,props)
componentWillReveiceProps:props发生改变执行
componentWillUnmount:组件卸载前执行
子传父!!!
父传子!!!
### setState更新是同步还是异步
1.setState会引起视图的重绘
2.在可控的情况下是异步,在非可控的情况下是同步
### 条件渲染
### 列表 & Key
主要问题是key
### 表单
1. 受控组件
2. 非受控组件
### Refs and the DOM
1.管理焦点,文本选择或媒体播放
2.触发强制动画
3.集成第三方 DOM 库
### 状态提升
组件之间的数据交互
### 组合 vs 继承
this.props.children
### 使用 PropTypes 进行类型检查
增强程序的健壮性
## Redux:
### 参考地址:
http://cn.redux.js.org/index.html
http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_one_basic_usages.html
### 基础知识点:
React中,状态数据,state
组件与组件之间可以传递数据:props、回传事件
兄弟之间组件传递数据:共同的子元素或者共同的父元素(大量的组件需要视同同一条数据)
如果你不知道什么时候需要使用Redux,就是你不需要使用它,当你遇到解决不了的问题,自然回想起Redux
### redux和react-redux的区别
redux:js的状态管理 createStore
react-redux:为了在react中容易的使用:connect provider
### 1.安装
npm install --save-dev redux
npm install --save-dev react-redux
### 2.调试流程
1.chorme浏览器需要安装插件:Redux DevTools
2.安装依赖
npm install --save-dev redux-devtools-extension
3.http://localhost:3000/redux/reduxThunk01 按照这个页面
测试