导入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('挂载容器'))