react 复习(一)

 

关于state:

1   不能直接更新状态    

2    应该使用setState()     

3    构造函数是唯一能够初始化this.state的地方

4   状态更新可能是异步的 

5  状态更新合并 :当调用setState()时,react将你提供的对象合并到当前状态,也可以独立更新

   

tip: 这里的合并就是说  this.setState({comments}) 完整保留了this.state.posts,完全替换了comments

6  数据自顶向下流动

eg: 父组件或子组件都不能知道某个组件是有状态还是无状态, 状态只为自身使用

      组件可以选择将其状态作为属性传递给子组件

7   事件处理

a:  React事件绑定属性的命名采用驼峰式写法

b: 采用jsx的语法需要传入 一个函数作为事件处理函数,而不是 一个字符串

c  不能使用返回false 阻止默认行为, 必须明确使用preventDefault

d  事件的绑定方式应该是 

e   事件处理程序传递参数

通过bind方式向监听函数传参,在类组件中定义监听函数,事件对象e要排在传递参数的后面

8   根据不同的state条件渲染

a    if

b     boolean &&   expression

c    三目运算符

组件的render方法返回null 并不会影响该组件的生命周期方法的回调

9  列表 && keys

当提取一个ListItem组件,应该把key保存在数组中的这个<ListItem .>元素上

       

 tip:key值在兄弟节点之间唯一

key会作为给react的提示,不会传递给你的组件, 如果组件中需要,需使用其他属性名显式传递这个值

10  表单

受控组件: input  textarea   select

非受控组件:  type="file"

11 状态提升 

eg:  几个组件需要共用状态数据,将这部分共享的状态提升至他们最近的父组件进行管理

12   组合  &  继承

eg: 类似于弹窗这种组件, 内部的内容是会发生变化,所以再调用的时候可以使用props.children 或者是 props.left  props.right

自己添加属性   这就是所谓的react组合

13  React 理念    数据流自顶向下传递

II:  高级react

1  灵活的组件名

2  jsx中的属性的几种不同方式

 

3  jsx 中传递子代  props.children

4  使用PropTypes检查类型

5  静态类型检查  使用typescript  代替  PropTypes

.ts是默认的文件扩展名, .tsx 是一个包含jsx代码使用的特殊扩展名

6  Refs & DOM 

Refs提供一种方式, 用于访问在render方法中创建的DOM节点或React元素

适合refs的情况:

如果可以通过声明式实现,尽量避免使用refs

7  性能优化

a  避免突变的数据  

shouldComponentUpdate 可以浅比较两者之间的区别, 但是如果是上面这种情况  ,words数组是同一个  所以添加了数组项后

不会更新页面  

所以需要使用下面的方式:

8  不适用ES6

9  Fragments

tip: tr中的div是无效的 , 所以应该使用

tip: <></> 是 <React.Fragment />的语法糖

<></> 语法不能接受键值或属性, 需要一个带key的片段, 可以直接使用<React.Fragment />

10  高阶组件 

tip: 高阶组件是将一个组件转化成另一个组件

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值