• React组件三大属性之state


    React组件三大属性之state

    组件被称为"状态机", 页面的显示是根据组件的state属性的数据来显示

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

    编码操作
    1) 初始化状态:
    constructor (props) {
    super(props)
    this.state = {
    stateProp1 : value1,
    stateProp2 : value2
    }
    }
    2) 读取某个状态值
    this.state.statePropertyName
    3) 更新状态---->组件界面更新
    this.setState({
    stateProp1 : value1,
    stateProp2 : value2
    })

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="../js/react.development.js"></script>
        <script src="../js/react-dom.development.js"></script>
        <script src="../js/babel.min.js"></script>
    </head>
    <body>
    <div id="test"></div>
    <script type="text/babel">
        /*
        需求: 自定义组件, 功能说明如下
              1. 显示h2标题, 初始文本为: 你喜欢我
              2. 点击标题更新为: 我喜欢你
        */
        //1、定义组件
        class Like extends React.Component {
            //初始化状态
            constructor (props) {
                super(props)
                this.state = {
                   isLikeMe:false
                }
                //将新增的方法中的this强制绑定为组件对象,
                //bind 返回新的函数
                this.handleClick = this.handleClick.bind(this)
            }
            //新添加的方法this默认不是组件对象,而是undefined
           handleClick(){
               // 更新状态
               const  isLikeMe = !this.state.isLikeMe
               this.setState({isLikeMe})
            }
            render() {
                //根据状态获取结果
                const text = this.state.isLikeMe ? '你喜欢我' : '我喜欢你'
                return <h2 onClick={this.handleClick}>{text}</h2>
            }
        }
        //2、渲染组件标签
        ReactDOM.render(<Like/>,document.getElementById('test'))
    
    </script>
    </body>
    </html>
  • 相关阅读:
    echarts 立体图
    css 设置边框边角
    PS2020 快速设置文字渐变
    idea 2019 永久破解
    使用VUE+element ui 实现输入框 占位符自动补全功能
    纯css 设置隔行样式
    CSS 设置float:left 导致后面元素错乱问题
    c primer plus 4编程练习
    c语言中以八进制数表示字符、并输出
    c语言中printf()函数的返回值
  • 原文地址:https://www.cnblogs.com/jnba/p/12517707.html
Copyright © 2020-2023  润新知