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项目控制台中文乱码
