• react中数据承载的两种方式(props和state)


    props: 自己可以设置默认属性,也可以从外部传入属性,但是外部传入的属性,自己只能用,不能用来修改

    state: 一般由自己控制,自己可以进行状态的更改。

    state状态

    类组件

    一般书写:

    • 状态一般放在constructor进行定义的

    • react中推荐采用setState,就可以实现数据改变,视图更新操作了

    • setState方法是异步的,如果想要获取更新后的最新状态,需要写在第二个参数中

      this.setState({
         		count: this.state.count+1
         },()=>{
               console.log(this.state.count)
        })
      
    let a = 1
    class Counter extends React.Component{
    	constructor(){
            super()
            this.state={
    			count:1
            }
    	}
        handleClick=()=>{
        
        //这种形式的 setState() 也是异步的,并且在同一周期内会对多个 setState 进行批处理
    		thuis.setState({
    			count:this.state.count+1
    		})
        }
    	render(){
    		return(
    			<div>
    				<p>counter=============== {this.state.count}</p>    
                    <button onClick={this.handleClick}>更改counter</button>
    			</div>
    		)
    	}
    }
    
    这种形式的 setState() 也是异步的,并且在同一周期内会对多个 setState 进行批处理
                     Object.assign() 
                     this.setState({
                        count:this.state.count+1
                    })
                    this.setState({
                        count:this.state.count+1
                    })
                    this.setState({
                        count:this.state.count+1
                    }) 
    

    如果后续状态取决于当前状态,我们建议使用 updater 函数的形式代替(里面出入参数,每次执行当前的都是在执行完上一个的基础上执行的)

                    this.setState((prevState)=>{
                        return {
                            count: prevState.count+1
                        }
                    },()=>{
                        console.log(this.state.count)
                    })
                    this.setState((prevState)=>{
                        return {
                            count: prevState.count+1
                        }
                    })
                    this.setState((prevState)=>{
                        return {
                            count: prevState.count+1
                        }
                    })
    

    函数组件应用state

    在类组件中,我们可以在构造函数中 this.state = {count:1}

    在函数式组件中,如何定义组件状态呢?

    可以采用React 16.8 useState 这个hooks来去解决

    const App=props=>{
            //定义了一个状态 count=1
            //定义了一个更改状态的方法 setCount
            const [count,setCount] = React.useState(1)
    
            return(
                <div>
                    App------{count}    
                    <p onClick={()=>{setCount(count+1)}}>数字加一</p>
                </div>
            )
        }
    
  • 相关阅读:
    浅谈 DML、DDL、DCL的区别
    SQL优化
    Appium定位方式总结
    移动端自动化测试-AppiumApi接口详解
    移动端自动化测试-WTF Appium?
    Selenium-Css Selector使用方法
    Selenium-Switch与SelectApi接口详解
    Selenium-ActionChainsApi接口详解
    Selenium-WebDriverApi接口详解
    Selenium之前世今生
  • 原文地址:https://www.cnblogs.com/axingya/p/13598843.html
Copyright © 2020-2023  润新知