react能干啥?
react最大的优势就是可以更方便的声明组件,复用组件
- react声明组件的方式,使用 ES6 的
class声明组件,然后使用
1 | class Some extends React.component{ |
上面代码意思为:使用
class创建一个Some的组件,扩展到react的组件库中,extends(扩展,拓展)然后使用
render函数渲染内部代码最后使用
return方法返回组件内的结构代码这样导入该组件,就相当于导入该组件内的样式以及结构代码
导入组件
1 | import Some from '组件文件路径' |
组件之间传值
props:接收组件之间传值的
1 | class Some extends React.Component{ |
在
extends实现继承创建的组件中,就得在constructor(构造器)中使用super(props)super()表示父类的构造函数在
render函数内可以通过this.props.属性名获得从父组件传递过来的参数如果是在
render函数外访问父组件传递过来的参数 ,那么就需要传递参数到constructor内
1 | constructor(props){ |
在
constructor访问父组件传递过来的属性,直接使用props就可以获得传递过来的值props接收过来的值,不管是在使用function创建的组件,还是class创建的组件中,都是只读的
state:用于存储每个组件的私有数据的
存储
1 | constructor(){ |
this.state={}这个是固定写法
使用state
1 | render(){ |
使用外界传递的值props
1 | //父组件中 |
react中绑定事件
on+事件名 使用驼峰命名方式
1 | render(){ |
注册事件
1 | class Some extends React.Component{ |
在
react规定函数内部,this指向的是undefined如果要在函数内使用this,那么就必须使用箭头函数,使得this指向外部创建的组件实例在每一个组件中,
this指向的为当前组件对象
事件中修改数据
- 直接使用
this.state.msg="这是一个测试代码"
1 | headerClick(){ |
注意:使用
this.state.msg虽然能修改数据,但是不会更新到视图中,这是react的一个bug
- 使用
this.setState({})改变值(推荐使用这种)
1 | headerClick(){ |
- 函数中:
oldDate为设置之前设置的值 props为外界传递进来的参数数据
由于
setState是异步执行,所以,执行this.setState()设置值之后,想立马拿到,那么就需要放在setState()里的第二的参数回调内
1 | this.setState(()=>{ |
评论加载中