美文网首页
React流水账01

React流水账01

作者: circleee | 来源:发表于2017-09-02 17:50 被阅读9次
    自定义的组件都必须要用大写字母开头,普通的 HTML 标签都用小写字母开头。

    组件 : <Header / >

    方法会自动传如一个event对象
    func(e) {
      console.log(e.target.innerHTML)
    }
    
    方法拿到this函数必须要绑定才可以。
    <button onClick = this.func.bind(this)>按钮<button/>
    

    组件初始化时候的state

      constructor () {
        super()
        this.state = { msg: "Hello"}
      }
    

    组件修改state值

      func (){
                console.log(this.state.)
                this.setState({
                   msg: this.msg+ "world";
                })
                console.log(this.state.)
      }
    

    两次的打印的值是相同的。不能直接处理this.state里面的参数,异步更新。
    setState可以接受对象和函数、setState不会立即修改参数。传参函数可以解决这个问题,

      func (){
        this.setState((state)=>{
          return {
            num : state.num + 1
          }
        })
        this.setState((state)=>{
          return {
            num : state.num + 2
          }
        }
      }
    

    Props 和 State

    state 的主要作用是用于组件保存、控制、修改自己的可变状态。state 在组件内部初始化,可以被组件自身修改,而外部不能访问也不能修改。你可以认为 state 是一个局部的、只能被组件自身控制的数据源。state 中状态可以通过 this.setState 方法进行更新,setState 会导致组件的重新渲染。

    props 的主要作用是让使用该组件的父组件可以传入参数来配置该组件。它是外部传进来的配置参数,组件内部无法控制也无法修改。除非外部组件主动传入新的 props,否则组件的 props 永远保持不变。

    没有 state 的组件叫无状态组件(stateless component),设置了 state 的叫做有状态组件(stateful component)。因为状态会带来管理的复杂性,我们尽量多地写无状态组件,尽量少地写有状态的组件。

    多写props,少写state

    相关文章

      网友评论

          本文标题:React流水账01

          本文链接:https://www.haomeiwen.com/subject/xerrjxtx.html