-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
React #3
Comments
代码分割React.lazy异常捕获边界(Error boundaries)命名导出 |
React 中如何添加多个className |
错误边界(Error Boundaries)关于事件处理器错误边界无法捕获事件处理器内部的错误。与 |
为什么需要在 React 类组件中为事件处理程序绑定 this |
函数组件与 class 组件的区别? |
无状态组件和有状态组件区别?无状态组件无状态组件(Stateless Component)是最基础的组件形式,由于没有状态的影响所以就是纯静态展示的作用。它的基本组成结构就是属性(props)加上一个回调函数。由于不涉及到状态的更新,所以这种组件的复用性也最强。
有状态组件在无状态组件的基础上,若组件内部包含状态(state)且状态会随着事件或者外部的消息而发生改变的时候,就构成了有状态组件(Stateful Component)。有状态组件通常会带有生命周期(lifeCycle),用以在不同的时刻触发状态的更新。
|
Refs and the DOM
何时使用 Refs
创建 RefsRefs 使用
访问 Refs当 ref 被传递给
ref 的值根据节点的类型而有所不同:
Refs 与 函数组件默认情况下,不能在函数组件上使用
可以在函数组件内部使用
|
组件的生命周期挂载当组件实例被创建并插入 DOM 中时,其生命周期调用顺序如下:
更新当组件的 props 或 state 发生变化时会触发更新。组件更新的生命周期调用顺序如下:
卸载当组件从 DOM 中移除时会调用:
常用的生命周期方法render()
constructor()在
避免将
componentDidMount()
componentDidUpdate(prevProps, prevState, snapshot)
可在 componentWillUnmount()
setState(updater, [callback])
forceUpdate()默认情况下,当组件的 |
受控组件 vs 非受控组件非受控组件
要编写一个非受控组件,而不是为每个状态更新都编写数据处理函数,可以使用 ref 来从 DOM 节点中获取表单数据。
默认值通过指定一个
|
Props 的只读性
组件无论是使用函数声明还是通过 class 声明,都决不能修改自身的
props
。所有 React 组件都必须像纯函数一样保护它们的props
不被更改。正确地使用 State
不要直接修改 State
应该使用
setState()
:State 的更新可能是异步的
出于性能考虑,React 可能会把多个
setState()
调用合并成一个调用。 因为this.props
和this.state
可能会异步更新,所以不要依赖它们的值来更新下一个状态。要解决这个问题,让
setState()
接收一个函数而不是一个对象。此函数用上一个state
作为第一个参数,将此次更新被应用时的props
作为第二个参数:State 的更新会被合并
调用
setState()
时,React 会把你提供的对象合并到当前的state
。向事件处理程序传递参数
在循环中通常会为事件处理函数传递额外的参数。
在这两种情况下,React 的事件对象
e
会被作为第二个参数传递。若通过箭头函数的方式,事件对象必须显式的进行传递;而通过bind
的方式,事件对象以及更多的参数将会被隐式的进行传递。阻止组件渲染
希望能隐藏组件,即使它已经被其他组件渲染。可以让
render
方法直接返回null
,而不进行任何渲染。在组件的render
方法中返回null
并不会影响组件的生命周期。componentDidUpdate
依然会被调用。用 key 提取组件
元素的
key
只有放在就近的数组上下文中才有意义。一个好的经验法则是:在
map()
方法中的元素需要设置key
属性。状态提升
在 React 应用中,任何可变数据应当只有一个相对应的唯一 "数据源"。通常,state 都是首先添加到需要渲染数据的组件中去。然后如果其他组件也需要这个 state,可以将它提升至这些组件的最近共同父组件中。应当依靠自上而下的数据流,而不是尝试在不同组件间同步 state。
The text was updated successfully, but these errors were encountered: