|
577 | 577 |
|
578 | 578 | 13. ### HTML 和 React 事件处理有什么区别?
|
579 | 579 |
|
580 |
| - 1. 在 HTML 中事件名必须小写: |
| 580 | + 1. 在 HTML 中事件名必须小写: |
581 | 581 |
|
582 | 582 | ```html
|
583 | 583 | <button onclick='activateLasers()'>
|
|
3535 | 3535 |
|
3536 | 3536 | 164. ### Redux 中连接装饰器的 `at` 符号的目的是什么?
|
3537 | 3537 |
|
3538 |
| - **@**符号实际上是用于表示装饰器的 JavaScript 表达式。*装饰器*可以在设计时注释和修改类和属性。 |
| 3538 | + **@** 符号实际上是用于表示装饰器的 JavaScript 表达式。*装饰器*可以在设计时注释和修改类和属性。 |
3539 | 3539 |
|
3540 | 3540 | 让我们举个例子,在没有装饰器的情况下设置 Redux 。
|
3541 | 3541 |
|
|
3677 | 3677 |
|
3678 | 3678 | **展示组件**是一个类或功能组件,用于描述应用程序的展示部分。
|
3679 | 3679 |
|
3680 |
| - **容器组件**是连接到 Redux Store的组件的非正式术语。容器组件*订阅* Redux 状态更新和*dispatch*操作,它们通常不呈现 DOM 元素; 他们将渲染委托给展示性的子组件。 |
| 3680 | + **容器组件**是连接到 Redux Store的组件的非正式术语。容器组件*订阅* Redux 状态更新和*dispatch*操作,它们通常不呈现 DOM 元素;他们将渲染委托给展示性的子组件。 |
3681 | 3681 |
|
3682 | 3682 | **[⬆ 返回顶部](#目录)**
|
3683 | 3683 |
|
|
3940 | 3940 |
|
3941 | 3941 | 189. ### 如何测试 React Native 应用程序?
|
3942 | 3942 |
|
3943 |
| - React Native 只能在 iOS 和 Android 等移动模拟器中进行测试。您可以使用 expo app(https://expo.io)在移动设备上运行该应用程序。如果使用 QR 代码进行同步,则您的移动设备和计算机应位于同一个无线网络中。 |
| 3943 | + React Native 只能在 iOS 和 Android 等移动模拟器中进行测试。您可以使用 expo app([https://expo.io](https://expo.io))在移动设备上运行该应用程序。如果使用 QR 代码进行同步,则您的移动设备和计算机应位于同一个无线网络中。 |
3944 | 3944 |
|
3945 | 3945 | **[⬆ 返回顶部](#目录)**
|
3946 | 3946 |
|
|
4022 | 4022 | 可用于不同浏览器或环境的官方扩展。
|
4023 | 4023 | 1. **Chrome插件**
|
4024 | 4024 | 2. **Firefox插件**
|
4025 |
| - 3. **独立应用** (Safari, React Native, 等) |
| 4025 | + 3. **独立应用** ( Safari,React Native 等) |
4026 | 4026 |
|
4027 | 4027 | **[⬆ 返回顶部](#目录)**
|
4028 | 4028 |
|
|
4267 | 4267 |
|
4268 | 4268 | 210. ### Redux 只能与 React 一起使用么?
|
4269 | 4269 |
|
4270 |
| - Redux 可以用做任何 UI 层的数据存储。最常见的应用场景是 React 和 React Native,但也有一些 bindings 可用于 AngularJS,Angular 2,Vue,Mithril 等项目。Redux 只提供了一种订阅机制,任何其他代码都可以使用它。 |
| 4270 | + Redux 可以用做任何 UI 层的数据存储。最常见的应用场景是 React 和 React Native,但也有一些 bindings 可用于 AngularJS,Angular 2,Vue,Mithril 等项目。Redux 只提供了一种订阅机制,任何其他代码都可以使用它。 |
4271 | 4271 |
|
4272 | 4272 | **[⬆ 返回顶部](#目录)**
|
4273 | 4273 |
|
|
5190 | 5190 | 2. **Debouncing:** 在一段时间不活动后发布更改。例如,可以使用 lodash 的 _.debounce 函数。
|
5191 | 5191 | 3. **RequestAnimationFrame throttling:** 基于 requestAnimationFrame 的更改。例如,可以使用 raf-schd。
|
5192 | 5192 |
|
5193 |
| - > 注意:_.debounce , _.throttle 和 raf-schd 都提供了一个 cancel 方法来取消延迟回调。所以需要调用 componentWillUnmount,或者对代码进行检查来保证在延迟函数有效期间内组件始终挂载。 |
| 5193 | + > 注意:_.debounce, _.throttle 和 raf-schd 都提供了一个 cancel 方法来取消延迟回调。所以需要调用 componentWillUnmount,或者对代码进行检查来保证在延迟函数有效期间内组件始终挂载。 |
5194 | 5194 |
|
5195 | 5195 | **[⬆ 返回顶部](#目录)**
|
5196 | 5196 |
|
|
5237 | 5237 | }
|
5238 | 5238 | ```
|
5239 | 5239 |
|
5240 |
| - 上面的函数称为 "pure" 函数,因为它不会尝试更改输入,并总是为相同的输入返回相同的结果。因此,React 有一条规则,即"所有 React 组件的行为都必须像纯函数一样。" |
| 5240 | + 上面的函数称为“纯”函数,因为它不会尝试更改输入,并总是为相同的输入返回相同的结果。因此,React 有一条规则,即“所有 React 组件的行为都必须像纯函数一样”。 |
5241 | 5241 |
|
5242 | 5242 | **[⬆ 返回顶部](#目录)**
|
5243 | 5243 |
|
5244 | 5244 | 264. ### 你认为状态更新是如何合并的?
|
5245 | 5245 |
|
5246 |
| - When you call setState() in the component, React merges the object you provide into the current state. For example, let us take a facebook user with posts and comments details as state variables, |
5247 | 5246 | 当你在组件中调用 setState() 方法时,React 会将提供的对象合并到当前状态。例如,让我们以一个使用帖子和评论详细信息的作为状态变量的 Facebook 用户为例:
|
5248 | 5247 |
|
5249 | 5248 | ```javascript
|
|
5558 | 5557 | 当在组件树中的组件没有匹配到在其上方的 Provider 时,才会使用 defaultValue 参数。这有助于在不包装组件的情况下单独测试组件。下面的代码段提供了默认的主题值 Luna。
|
5559 | 5558 |
|
5560 | 5559 | ```javascript
|
5561 |
| - const defaultTheme = "Luna"; |
| 5560 | + const defaultTheme = "Luna"; |
5562 | 5561 | const MyContext = React.createContext(defaultTheme);
|
5563 | 5562 | ```
|
5564 | 5563 |
|
|
5903 | 5902 |
|
5904 | 5903 | 292. ### 如何使用渲染属性创建 HOC?
|
5905 | 5904 |
|
5906 |
| - 可以使用带有渲染属性的常规组件实现大多数高阶组件(HOC)。例如,如果希望使用 withMouse HOC 而不是 <Mouse> 组件,则你可以使用带有渲染属性的常规 <Mouse> 组件轻松创建一个 HOC 组件。 |
| 5905 | + 可以使用带有渲染属性的常规组件实现大多数高阶组件(HOC)。例如,如果希望使用 withMouse HOC 而不是 `<Mouse>` 组件,则你可以使用带有渲染属性的常规 `<Mouse>` 组件轻松创建一个 HOC 组件。 |
5907 | 5906 |
|
5908 | 5907 | ```javascript
|
5909 | 5908 | function withMouse(Component) {
|
|
0 commit comments