React

用于构建用户界面的Javascript库

1、引入react库
2、引入react-dom库,用于支持react操作dom
3、引入babel将jsx转为js

纯函数

需满足两个条件:

  • 返回值只受参数影响
  • 执行过程中无副作用(有副作用:对外部数据产生了可观察的变化)
// 纯函数
function fn(a, b) {
    return (a + b)
}

// 不纯
function fn() {
    return Math.random()
}
// 纯函数
function fn(obj, b) {
    return (obj.x + b)
}
const obj = {x: 2}

// 不纯
function fn(obj, b) {
    obj.x = 3
    return (obj.x + b)
}
const obj = {x: 2}

所有React组件都必须是纯函数,并禁止修改其自身props,也不允许修改,遵循单向数据流原则,因为假如可以修改,则会造成跟父组件相关的所有组件的内容修改,就会乱套不可控

受控组件&非受控组件

非受控组件:状态现用现取(ref)

<input ref={element => this.input1 = element} type="text" />

受控组件:状态由React维护(setState存,state取)

<input type="text" name="username" onChange={event => this.saveFormData('username', event)}/>

有状态组件 & 无状态组件

  • 有状态组件:属于一个class类,有this,有state,props,可继承,有生命周期
  • 无状态组件:属于函数式组件,无state、props,只关注DOM渲染,不关注其他逻辑

results matching ""

    No results matching ""