宁波网站开发公司怎么样搭建网站需要程序
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:15
当前位置: 首页 > news >正文
宁波网站开发公司怎么样,搭建网站需要程序,营销型网站的建设,工装装修16.1 useEffect Effect Hook 可以让你来完成一些类似于class中生命周期的功能#xff1b; 事实上#xff0c;类似于网络请求、手动更新DOM、一些事件的监听#xff0c;都是React更新DOM的一些副作用#xff08;Side Effects#xff09;#xff1b;所以对于完成这些功能…16.1 useEffect Effect Hook 可以让你来完成一些类似于class中生命周期的功能 事实上类似于网络请求、手动更新DOM、一些事件的监听都是React更新DOM的一些副作用Side Effects所以对于完成这些功能的Hook被称之为 Effect Hook import React, { useState, useEffect } from react;function UseEffectDemo() {const [counter, setCounter] useState(0);useEffect(() {document.title Counter counter;});return (divh1Counter: {counter}/h1button onClick{() setCounter(counter 1)}Increment/button/div); }export default UseEffectDemo;useEffect的清除 在class组件的编写过程中某些副作用的代码我们需要在componentWillUnmount中进行清除 比如我们之前的事件总线或Redux中手动调用subscribe都需要在componentWillUnmount有对应的取消订阅Effect Hook通过什么方式来模拟componentWillUnmount呢 useEffect传入的回调函数A本身可以有一个返回值这个返回值是另外一个回调函数B 为什么要在 effect 中返回一个函数 这是 effect 可选的清除机制。每个 effect 都可以返回一个清除函数 如此可以将添加和移除订阅的逻辑放在一起它们都属于 effect 的一部分 React 何时清除 effect React 会在组件更新和卸载的时候执行清除操作正如之前学到的effect 在每次渲染的时候都会执行 useEffect实际上有两个参数 参数一执行的回调函数参数二该useEffect在哪些state发生变化时才重新执行受谁的影响 16.2 useContext Context Hook允许我们通过Hook来直接获取某个Context的值 App.js定义共享 export const userContext createContext(); export const ThemContext createContext();App.js还是需要包裹 function App() {return (div classNameApp{/* UseCounter /MoreState / /}{/ UseEffectDemo / /}userContext.Provider value{{ name: 里斯 }}ThemContext.Provider value{{ theme: dark }}UserContextDemo //ThemContext.Provider/userContext.Provider/div); }使用(超简单) import React, { useContext } from react import { userContext } from ./Appexport default function UserContextDemo() {const { name } useContext(userContext);return div用户名{name}/div }16.3 useReducer useReducer仅仅是useState的一种替代方案 在某些场景下如果state的处理逻辑比较复杂我们可以通过useReducer来对其进行拆分或者这次修改的state需要依赖之前的state时也可以使用 使用计数来举个例子 import React, { PureComponent, useReducer } from react// 定义reducer函数接收state和action根据action.type返回新的state function reducer(state, action) {switch (action.type) {case INCRESE: // 增加return { count: state.count 1 };case DECRESE: // 减少return { count: state.count - 1 };default:throw new Error(); // 未知action抛出错误} }export default function UseReducer() {// 定义初始状态const initialState {count: 0}// useReducer返回当前state和dispatch方法const [state, dispatch] useReducer(reducer, initialState);return (div{/ 显示当前count /}h2number{state.count}/h2{/ 点击按钮派发INCRESE和DECRESE action /}button onClick{() dispatch({ type: INCRESE })} 1/buttonbutton onClick{() dispatch({ type: DECRESE })} - 1/button/div) }16.4 useCallBack useCallback实际的目的是为了进行性能的优化。 如何进行性能的优化呢 useCallback会返回一个函数的 memoized记忆的 值在依赖不变的情况下多次定义的时候返回的值是相同的 16.5 useMemo useMemo返回的也是一个 memoized记忆的 值 在依赖不变的情况下多次定义的时候返回的值是相同的 16.1 useEffect Effect Hook 可以让你来完成一些类似于class中生命周期的功能 事实上类似于网络请求、手动更新DOM、一些事件的监听都是React更新DOM的一些副作用Side Effects所以对于完成这些功能的Hook被称之为 Effect Hook import React, { useState, useEffect } from react;function UseEffectDemo() {const [counter, setCounter] useState(0);useEffect(() {document.title Counter counter;});return (divh1Counter: {counter}/h1button onClick{() setCounter(counter 1)}Increment/button/div); }export default UseEffectDemo;useEffect的清除 在class组件的编写过程中某些副作用的代码我们需要在componentWillUnmount中进行清除 比如我们之前的事件总线或Redux中手动调用subscribe都需要在componentWillUnmount有对应的取消订阅Effect Hook通过什么方式来模拟componentWillUnmount呢 useEffect传入的回调函数A本身可以有一个返回值这个返回值是另外一个回调函数B 为什么要在 effect 中返回一个函数 这是 effect 可选的清除机制。每个 effect 都可以返回一个清除函数 如此可以将添加和移除订阅的逻辑放在一起它们都属于 effect 的一部分 React 何时清除 effect React 会在组件更新和卸载的时候执行清除操作正如之前学到的effect 在每次渲染的时候都会执行 useEffect实际上有两个参数 参数一执行的回调函数参数二该useEffect在哪些state发生变化时才重新执行受谁的影响 16.2 useContext Context Hook允许我们通过Hook来直接获取某个Context的值 App.js定义共享 export const userContext createContext(); export const ThemContext createContext();App.js还是需要包裹 function App() {return (div classNameApp{/ UseCounter /MoreState / /}{/ UseEffectDemo / /}userContext.Provider value{{ name: 里斯 }}ThemContext.Provider value{{ theme: dark }}UserContextDemo //ThemContext.Provider/userContext.Provider/div); }使用(超简单) import React, { useContext } from react import { userContext } from ./Appexport default function UserContextDemo() {const { name } useContext(userContext);return div用户名{name}/div }16.3 useReducer useReducer仅仅是useState的一种替代方案 在某些场景下如果state的处理逻辑比较复杂我们可以通过useReducer来对其进行拆分或者这次修改的state需要依赖之前的state时也可以使用 使用计数来举个例子 import React, { PureComponent, useReducer } from react// 定义reducer函数接收state和action根据action.type返回新的state function reducer(state, action) {switch (action.type) {case INCRESE: // 增加return { count: state.count 1 };case DECRESE: // 减少return { count: state.count - 1 };default:throw new Error(); // 未知action抛出错误} }export default function UseReducer() {// 定义初始状态const initialState {count: 0}// useReducer返回当前state和dispatch方法const [state, dispatch] useReducer(reducer, initialState);return (div{/ 显示当前count /}h2number{state.count}/h2{/ 点击按钮派发INCRESE和DECRESE action */}button onClick{() dispatch({ type: INCRESE })} 1/buttonbutton onClick{() dispatch({ type: DECRESE })} - 1/button/div) }16.4 useCallBack useCallback实际的目的是为了进行性能的优化。 如何进行性能的优化呢 useCallback会返回一个函数的 memoized记忆的 值在依赖不变的情况下多次定义的时候返回的值是相同的 16.5 useMemo useMemo返回的也是一个 memoized记忆的 值 在依赖不变的情况下多次定义的时候返回的值是相同的
- 上一篇: 宁波网站开发定制厦门仿站定制模板建站
- 下一篇: 宁波网站排名优化费用定制家具生产厂家
相关文章
-
宁波网站开发定制厦门仿站定制模板建站
宁波网站开发定制厦门仿站定制模板建站
- 技术栈
- 2026年03月21日
-
宁波网站建设专业定制专业建设验收网站
宁波网站建设专业定制专业建设验收网站
- 技术栈
- 2026年03月21日
-
宁波网站建设制作公司哪家好阿里指数网站
宁波网站建设制作公司哪家好阿里指数网站
- 技术栈
- 2026年03月21日
-
宁波网站排名优化费用定制家具生产厂家
宁波网站排名优化费用定制家具生产厂家
- 技术栈
- 2026年03月21日
-
宁波网站设计推广培训班天津招投标天津建设工程信息网
宁波网站设计推广培训班天津招投标天津建设工程信息网
- 技术栈
- 2026年03月21日
-
宁波网站推广渠道外贸营销是做什么的
宁波网站推广渠道外贸营销是做什么的
- 技术栈
- 2026年03月21日






