想对react下手已经不是一天两天的事儿了,今日便将心一横…
react的两个核心方法
1 | // 渲染方法 |
JSX语法
JSX语法支持html与js混着写。遇见<
解析为html,遇见{
解析为javascript。
注:
- 如果
{}
里面放了javascript数组,JSX会将该数组展开渲染。 - 给标签设置动态属性值,只需要将属性值用
{}
包起来。 - 在JSX里面
class
要变为className
。
组件类
组件类的render方法
1 | // render方法里面返回一些标签 |
组件类的props
react里面的props
是只读的,由父组件传给子组件。子组件通过this.props.xx
来得到props
。
初始化默认的props
:1
2// 这个写在组件类的外面
组件类名.defaultProps = { initialCount: 0 };
组件类的state
修改state要用this.setState({comment: 'Hello'});
(这种方式会自动触发视图渲染)。
组件类的构造函数
1 | // 构造函数可以用来初始化props的值 |
组件的生命周期
- 三种状态
Mount
、Update
、Unmount
。 - 两种特殊状态的处理函数
componentWillReceiveProps(object nextProps)
(已加载组件收到新的参数时调用);shouldComponentUpdate(object nextProps, object nextState)
(组件判断是否重新渲染时调用)。
事件处理
- 在ES6写法的组件类中,方法的绑定需要用
bind()
方法绑定this
。 - 给事件处理函数传递额外参数的方式:
bind(this, arg1, arg2, ...)
。 - 使用原生事件的时候注意在
componentWillUnmount
解除绑定removeEventListener
。
渲染列表
善用数组的map()
方法
1 | const numbers = [1, 2, 3, 4, 5]; |
列表中的key
属性
如果循环列表时没有给列表的每一项添加key
属性,react会有警告。加上key
属性有利于提高react的性能。
注:key
并不要求在全局独一无二。
表单
获取输入框、文本域、下拉选项中的值
1 | handleChange(event) { |
表单默认值
使用defaultValue
和defaultChecked
代替value
和checked
。
处理多个表单元素
1 | handleInputChange(event) { |