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(挂载容器))
经验分享 程序员 微信小程序 职场和发展