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(挂载容器))
上一篇:
IDEA上Java项目控制台中文乱码