React三大属性state,props,ref的用法

导入React需要的JS

state

 class Mycomponent extends React.Component{
 // 将变量挂载到实例上
      state={isHot:fasle}
      render(){
          const {isHot}=this.state
          return <h1 onClick={this.change}>今天天气{isHot?'热':'冷'}</h1>
      }
      change=()=>{
       // 改变变量在React中不能直接更改
       const {isHot}=this.state
       this.setState({   
            isHot:!isHot
       })
      }
      ReactDOM.render(<Mycomponent/>,document.getElementById('挂载容器'))
 }

Props

class MyProps extends React.Component{
  render(){
  const {name,age,sex}=this.props
    return(
        <ul>
        <li>年龄:{age}</li>
        <li>名字:{name}</li>
        <li>性别:{sex}</li>
        </ul>
    )
  }
  // 添加规则
  static propsTypes={
     name:PropsTypes.String.isRequired //字符串且必填
      age:PropsTypes.Nunber
      sex:PropsTypes.String
  }
  // 默认值
  static defaultProps={
      name:'jack'
      age:18
  }
}
ReactDOM.render(<MyProps  name="张三" age={18} 性别="男"    />,document.getElementById('挂载容器'))

ref

class refDemo extends React.Component{
    showData=()=>{
      const {input1}=this.refs
      alert(input1.value)
    }
    showData2=()=>{
      const {input2}=this.refs
      alert(input2.value)
    }
 render(){
 return(
 	      <div>
	<input ref="input1" type="text" placeholder="点击按钮提示数据"/>         <button onClick={this.showData}>点我提示左侧的数据</button>
	<input ref="input2" onBlur={this.showData2} type="text" placeholder="失去焦点提示数据"/>
	     </div>
 )
 }
}
ReactDOM.render(<refDemo/>,document.getElementById('挂载容器'))
上一篇:React学习笔记——类中的方法内部的this指向


下一篇:阿里巴巴不建议 boolean 类型变量用 isXXX的理由?