Read(四) 组件实例对象3大属性之: state属性

组件实例对象3大属性之: state属性

1). 组件被称为"状态机", 通过更新组件的状态值来更新对应的页面显示(重新渲染)
2). 初始化状态:

  constructor (props) {
    super(props)
    this.state = {
      stateProp1 : value1,
      stateProp2 : value2
    }
  }


3). 读取某个状态值

  this.state.statePropertyName


4). 更新状态---->组件界面更新
 

 this.setState({
    stateProp1 : value1,
    stateProp2 : value2
  })

需求: 自定义组件, 功能说明如下
  1. 显示h2标题, 初始文本为: 我喜欢你
  2. 点击标题更新为:你喜欢我

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>07_component_state</title>
</head>
<body>

<div id="example"></div>

<script src="../js/react.js"></script>
<script src="../js/react-dom.js"></script>
<script src="../js/babel.min.js"></script>
<script type="text/babel">
  
  class LikeMe extends React.Component {
    constructor(props) {
      super(props)
      this.state = {
        isLikeMe: false
      }
      this.switchLikeMe = this.switchLikeMe.bind(this)
    }

    switchLikeMe() {
      // 对原来值取反,改变状态
      let isLikeMe = !this.state.isLikeMe;
      // 改变状态后再赋值
      this.setState({isLikeMe})
    }

    render() {
      let text = this.state.isLikeMe ? '你喜欢我' : '我喜欢你'
      return <h2 onClick={this.switchLikeMe}>{text}</h2>
    }
  }

  ReactDOM.render(<LikeMe/>, document.getElementById('example'))

</script>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值