1.受控组件vs非受控组件
<FInput value={x} onChange={fn}/> 受控组件 (表单数据由 React 组件处理。=> onChange的事件处理器)
<FInput defaultValue={x} ref={input}/> 非受控组件 (让表单数据由 DOM 处理时=== 使用 ref从 DOM 获取表单值 ,为非受控组件)
区别受控组件的状态由开发者维护,非受控组件的状态由组件自身维护(不受开发者控制)
2.生命周期
Starts=> **componentWillMount() => render() =>componentDidMount =>state改变=> componentShouldUpdate() =>(true) => componentWillUpdate =>render() =>componentDidUpdate() =>componentWillUnmount() **=>ends
Starts=> componentWillMount() => render() =>componentDidMount =>state改变=> componentShouldUpdate() => (false) => componentWillUnmount() =>ends
Starts=> componentWillMount() => render() =>componentDidMount =>父组件重新render()=>componentWillReceiveProps() =>componentShouldUpdate() =>...
组件将要挂载
|渲染|
组件是否挂载了 (在这里请求ajax数据componentDidMount )
组件是否要更新
=>
true or false
=>
组件将要更新
|渲染|
组件是否更新了
组件卸载
3.react如何实现组件间通信?
父与子通过传pros,子到父通过子调用父作用域下的函数,任意组件用redux