react学习-react实例的三大核心属性
组件实例的三大核心属性
在React中,组件实例的三大核心属性包含state、props、ref,通过这三大核心属性的使用,我们能够实现对组件的状态进行更新。
一、state
概念
- state是组件对象 最重要的属性,值是对象(可以包含多个key-value的组合)
- 组件被被称为"状态机",通过更新组件的state更新对应的页面显示,state的状态数据不能直接修改或更新,需要借助setState来更新或修改,且更新是一种合并,不是替换。
在组件中需要注意的地方
- 组件中的render方法中的this为组件实例对象
- 组件自定义的方法中this为undefined,可以通过函数对象的bind()强制绑定this,也可以使用箭头函数
- 组件的状态数据,不能直接修改或更新
state的使用
state
*简洁化
state简写方式
二、props
1.何为props
- 每个组件对象中对会含有props属性
- 组件标签的所有属性都保存在props中
2.作用
- 通过标签属性从组件外向组件内传递变化的数据
- 组件内部不建议修改props的数据,数据的更新借助于state
3.对props中的属性的值进行类型限制和必要性限制
在使用props向外传递变化的数据时,有时组件内部对于数据有一定的要求,就需要对props的属性值进行类型限制和必要性限制
常用方法是使用prop-types库进行限制(需引入prop-types库)
Person.propTypes = {
name:PropTypes.string.isRequired, //限制name必传,且为字符串
sex:PropTypes.string,//限制sex为字符串
age:PropTypes.number,//限制age为数值
speak:PropTypes.func,//限制speak为函数
}
props的使用
对props进行限制
三 refs于事件处理
在组件内使用,组件内的便签可以定义ref属性来表示自己
ref编码形式
- 字符串形式
- 回调形式(常用)
- createRef创建ref容器