function CustomTextInput(props) { return ( <div> <input ref={props.inputRef} /> </div> ); } class Parent extends React.Component { //this.inputElement 就是CustomTextInput中的input render() { return ( <CustomTextInput inputRef={el => this.inputElement = el} /> ); } }
ReactDOM
获取一个DOM除了refs还有更加简单粗暴的方法findDOMNode。
findDOMNode 是用于操作底层DOM节点的备用方案。使用它的优先级比refs更低!!
findDOMNode 只对挂载过的组件有效。
findDOMNode 不能用于函数式的组件中。
import ReactDOM from 'react-dom'; ReactDOM.render( element, container, [callback]//不为人知的第三个参数!! ) ReactDOM.unmountComponentAtNode(container) ReactDOM.findDOMNode(component)
不常用的新发现
空的 JSX 标签Fragments <></>或者<React.Fragment></React.Fragment>
与运算符 && true && expression 总是返回 expression,而 false && expression 总是返回 false。
阻止组件渲染常用null组件的 render 方法返回 null 并不会影响该组件生命周期方法的回调。例如,componentWillUpdate 和 componentDidUpdate 依然可以被调用。