zoukankan      html  css  js  c++  java
  • React入门---属性(state)-7

    state------>虚拟dom------>dom

    这个过程是自动的,不需要触发其他事件来调用它。

    state中文理解:页面状态的的一个值,可以存储很多东西。

    学习state的使用:

    1.state先初始化,在React中,每一个类跟所有的面向对象的函数一样,都有一个构造函数叫constructor。

    2.将state的初始化放在constructor()里面。

    export default class BodyIndex extends React.Component{
        //将state的初始化放在constructor()里面
        constructor(){
            super();//调用基类的所有初始化方法(这个是固定模式)
            //下面是对state固定的语法
            //初始化state后,初始化赋值
            //重要:state只作用于当前的class,绝不影响其他组件class(例如这个state是作用在主体部分,它就不会影响头部和底部)
            this.state = {username : "azedada"} //可以传json等很多格式(这个是初始化赋值)
        }
        render(){
            return(
                    <div>
                        <h1>这里是主体内容部分</h1>
                        {/*state在页面显示*/} 
                        <p>{this.state.username}</p>
                    </div>
                )
        }
    }

    重要:state只作用于当前的class,绝不影响其他组件class(例如这个state是作用在主体部分,它就不会影响头部和底部)。

    3.state发生改变,会立马引起刷新,但是这个刷新只会更改需要更改的部分,不会引起页面全部刷新,所以用react写出来的页面效率非常高。

        接下来用定时器函数来做一个简单的理解:

     

    export default class BodyIndex extends React.Component{
        //将state的初始化放在constructor()里面
        constructor(){
            super();
            this.state = {username : "azedada"}
        }
        render(){
            //定时器,4秒后进行刷新
            setTimeout(()=>{
                //更改state的时候
                this.setState({username : "hello"})
            },4000)
    
            return(
                    <div>
                        <h1>这里是主体容部分</h1>
                        {/*state在页面显示*/} 
                        <p>{this.state.username}</p>
                    </div>
                )
        }    
    }

    运行程序之后,就会发现 页面中 azedada 会在4秒中后变为 hello,这个过程只进行当前的刷新,没有页面的刷新。效率非常高。

  • 相关阅读:
    HDU----(4291)A Short problem(快速矩阵幂)
    HDU----(2157)How many ways??(快速矩阵幂)
    hdu---(2604)Queuing(矩阵快速幂)
    hdu---(5038)Grade(胡搞)
    齐次方程到矩阵(番外篇)
    uva--1339
    hdu----(5023)A Corrupt Mayor's Performance Art(线段树区间更新以及区间查询)
    hdu----(2848)Repository(trie树变形)
    hdu---(1800)Flying to the Mars(trie树)
    hdu----(1075)What Are You Talking About(trie之查找)
  • 原文地址:https://www.cnblogs.com/azedada/p/6846779.html
Copyright © 2011-2022 走看看