zoukankan      html  css  js  c++  java
  • React技术栈-组件三大属性之state

                  React技术栈-组件三大属性之state

                                          作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.组件的state属性概述

      state是组件对象最重要的属性, 值是对象(可以包含多个数据)
    
      组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件)

    二.state实战案例

    1>.HTML源代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>组件三大属性之state</title>
        </head>
        <body>
            <div id="box1"></div>
        </body>
        
        <script type="text/javascript" src="../js/react.development.js"></script>
        <script type="text/javascript" src="../js/react-dom.development.js"></script>
        <script type="text/javascript" src="../js/babel.min.js"></script>
        
        <script type="text/babel">
            //1>.定义组件
            class Like extends React.Component{
                constructor(props){
                    super(props);
                    //初始化状态
                    this.state = {
                        isLikeMe:false
                    }
                    
                    //将新增的方法中的"this"强制绑定为组件对象
                    this.handleClick = this.handleClick.bind(this);
                }
                
                //重写组件类的方法
                render(){
                    //解构方式读取状态
                    const {isLikeMe} = this.state;
                    return <h1 onClick={this.handleClick}>{isLikeMe?'你喜欢我':'I Love You'}</h1>
                }
                
                //新添加方法:内部的this默认不是组件对象,而是"undefined"
                handleClick(){
                    //得到当前状态并取反
                    const isLikeMe = !this.state.isLikeMe;
                    //更新状态
                    this.setState({isLikeMe})                
                }
            }
            
            //2>.渲染组件标签
            ReactDOM.render(<Like />,document.getElementById("box1"))
        </script>
    </html>

    2>.浏览器打开以上代码渲染结果

    如上图所示,点击标签,网页内容发生变化,如下图所示。

  • 相关阅读:
    Openstack 学习资源
    Linux 中的 Network服务 与NetworkManager
    解决Eclipse +pydev 中python import 代码提示错误问题
    JSON格式化工具推荐
    python 中json库的 对象转换问题
    使用SmartOS做为Openstack 基础操作系统(简译)
    使用PYTHON ZSI 开发WebService
    VirtualBox 虚拟机硬盘缓存与系统虚拟缓存对性能的影响测试。
    关于使用Django admin模块插入中文时乱码的处理方法
    Linux 和 SmartOS 命令对比
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/12089116.html
Copyright © 2011-2022 走看看