第2章:组件三大核心属性1: state(丝待他)

2024-09-12  本文已影响0人  让你变好的过程从来都不会很舒服

2.2.2. 理解

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

2.2.3. 强烈注意

1.组件中render方法中的this为组件实例对象
2.组件自定义的方法中this为undefined,如何解决?
a)强制绑定this: 通过函数对象的bind()
b)箭头函数
3.状态数据,不能直接修改或更新

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2_类式组件.html</title>
</head>
<body>

    <!-- 准备好一个容器 -->
    <div id="test"></div>

    <!--  引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom,用于支持react操作DOM -->
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <!-- 引入babe1,用于将jsx转为js -->
    <script type="text/javascript" src="../js/babel.min.js"></script>
    
    <script type="text/babel">/* 此处一定要写babel */
       
        class Weather extends React.Component{
           // 初始化状态
           state={isHot:false,wind:'微风'}
           render(){
                const {isHot,wind}=this.state
                return (
                    <h1 onClick={this.changeWeather}>今天天气很{isHot?'炎热':'凉爽'},{wind}</h1>

                )
           }
           // 自定义方法——要用赋值语句的形式+箭头函数
           changeWeather=()=>{
                const isHot=this.state.isHot;
                this.setState({isHot:!isHot})
           }
        }
        // 2、渲染组件到页面
        ReactDOM.render(<Weather/>,document.getElementById('test'));
        
         
    </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读