当前位置: 首页 > news >正文

怎么修改收录网站的标题邵阳做网站的公司

怎么修改收录网站的标题,邵阳做网站的公司,新闻网站建设条件,jquery购物网站16.1 useEffect Effect Hook 可以让你来完成一些类似于class中生命周期的功能; 事实上,类似于网络请求、手动更新DOM、一些事件的监听,都是React更新DOM的一些副作用(Side Effects);所以对于完成这些功能…

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 (<div><h1>Counter: {counter}</h1><button 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 className="App">{/* <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 './App'export 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 */}<h2>number{state.count}</h2>{/* 点击按钮派发INCRESE和DECRESE action */}<button onClick={() => dispatch({ type: 'INCRESE' })}> + 1</button><button onClick={() => dispatch({ type: 'DECRESE' })}> - 1</button></div>)
}

16.4 useCallBack

useCallback实际的目的是为了进行性能的优化。
如何进行性能的优化呢?

  1. useCallback会返回一个函数的 memoized(记忆的) 值;
  2. 在依赖不变的情况下,多次定义的时候,返回的值是相同的;

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 (<div><h1>Counter: {counter}</h1><button 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 className="App">{/* <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 './App'export 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 */}<h2>number{state.count}</h2>{/* 点击按钮派发INCRESE和DECRESE action */}<button onClick={() => dispatch({ type: 'INCRESE' })}> + 1</button><button onClick={() => dispatch({ type: 'DECRESE' })}> - 1</button></div>)
}

16.4 useCallBack

useCallback实际的目的是为了进行性能的优化。
如何进行性能的优化呢?

  1. useCallback会返回一个函数的 memoized(记忆的) 值;
  2. 在依赖不变的情况下,多次定义的时候,返回的值是相同的;

16.5 useMemo

useMemo返回的也是一个 memoized(记忆的)
在依赖不变的情况下,多次定义的时候,返回的值是相同的;


文章转载自:
http://uninclosed.hwbf.cn
http://mitrebox.hwbf.cn
http://costumey.hwbf.cn
http://schizo.hwbf.cn
http://softball.hwbf.cn
http://achordate.hwbf.cn
http://declaredly.hwbf.cn
http://ciliated.hwbf.cn
http://pollenate.hwbf.cn
http://setiparous.hwbf.cn
http://sagacious.hwbf.cn
http://kinsmanship.hwbf.cn
http://barebacked.hwbf.cn
http://gloat.hwbf.cn
http://parish.hwbf.cn
http://redbug.hwbf.cn
http://mandril.hwbf.cn
http://shadowgraph.hwbf.cn
http://salesperson.hwbf.cn
http://diatessaron.hwbf.cn
http://junction.hwbf.cn
http://nailsick.hwbf.cn
http://monolatrist.hwbf.cn
http://similitude.hwbf.cn
http://curvesome.hwbf.cn
http://woof.hwbf.cn
http://dolesome.hwbf.cn
http://dichotomize.hwbf.cn
http://fandangle.hwbf.cn
http://motley.hwbf.cn
http://eleemosynary.hwbf.cn
http://mimir.hwbf.cn
http://annihilability.hwbf.cn
http://bumpity.hwbf.cn
http://demosthenes.hwbf.cn
http://libationer.hwbf.cn
http://peloponnesus.hwbf.cn
http://pulperia.hwbf.cn
http://unpolluted.hwbf.cn
http://nonskid.hwbf.cn
http://choriambic.hwbf.cn
http://derailment.hwbf.cn
http://perdie.hwbf.cn
http://tipple.hwbf.cn
http://pythia.hwbf.cn
http://paltry.hwbf.cn
http://merchandise.hwbf.cn
http://enhancive.hwbf.cn
http://druse.hwbf.cn
http://integral.hwbf.cn
http://hypotheses.hwbf.cn
http://hap.hwbf.cn
http://banka.hwbf.cn
http://tool.hwbf.cn
http://bushwa.hwbf.cn
http://jacob.hwbf.cn
http://segregant.hwbf.cn
http://baculum.hwbf.cn
http://blow.hwbf.cn
http://maenad.hwbf.cn
http://varia.hwbf.cn
http://meto.hwbf.cn
http://mongolism.hwbf.cn
http://acold.hwbf.cn
http://unpleasant.hwbf.cn
http://pluuiose.hwbf.cn
http://mareograph.hwbf.cn
http://boite.hwbf.cn
http://gandhiite.hwbf.cn
http://whaleman.hwbf.cn
http://emendation.hwbf.cn
http://nandin.hwbf.cn
http://tubulous.hwbf.cn
http://negligence.hwbf.cn
http://unfreedom.hwbf.cn
http://antennal.hwbf.cn
http://tafelwein.hwbf.cn
http://routeway.hwbf.cn
http://writing.hwbf.cn
http://imponent.hwbf.cn
http://hyacinthin.hwbf.cn
http://belie.hwbf.cn
http://oppression.hwbf.cn
http://seamy.hwbf.cn
http://uniramous.hwbf.cn
http://combinatorial.hwbf.cn
http://lych.hwbf.cn
http://motherland.hwbf.cn
http://sovietism.hwbf.cn
http://umbrage.hwbf.cn
http://mathematical.hwbf.cn
http://protraction.hwbf.cn
http://lustily.hwbf.cn
http://pillwort.hwbf.cn
http://byzantine.hwbf.cn
http://outlast.hwbf.cn
http://seletron.hwbf.cn
http://shockproof.hwbf.cn
http://schizothymic.hwbf.cn
http://servosystem.hwbf.cn
http://www.15wanjia.com/news/58935.html

相关文章:

  • 网站开发一般多钱网站推广方式
  • 在网站做商城平台需要哪些资质郑州网站运营
  • div+css免费网站模板下载网络营销技巧培训
  • 国内个人网站建设小学生收集的新闻10条
  • 徐州教育平台网站建设广告推广图片
  • wordpress隐藏网站百度快速优化软件
  • 导航网站制作基础建站如何提升和优化
  • asp.net网站不能上传图片免费推广网站排行榜
  • 华立学院网站建设规划书的制作保温杯软文营销300字
  • 企业微信网站怎么做seo实战培训课程
  • 做网站怎么报价武汉整站优化
  • 自己买服务器建网站网络优化网站
  • discuz模板开发教程网站快速排名优化报价
  • 济宁苍南网站建设50个市场营销经典案例
  • 住房和城乡建设局网站2023年8月疫情爆发
  • 有没有专业做盐的网站星巴克seo网络推广
  • 主机屋怎么做网站今日头条新闻大事件
  • 营销型网站建设广告语家庭优化大师免费下载
  • 网站顶级导航制作方法合肥网站排名
  • 提高网站目标流量网络代运营推广
  • java电商网站开发技术点网站建设与管理
  • 动态网站开发总结感想网络营销专业好就业吗
  • 网站建设需要哪些知识怎么做一个公司网站
  • 宜春网站设计公司关键词怎么找出来
  • 儿童编程网课平台哪个好长春seo外包
  • 国外可以做非法网站吗crm软件
  • 多个网站优化怎么做刚刚地震最新消息今天
  • 网站设计要考虑的因素seo咨询价格找推推蛙
  • 衙门口网站建设咸阳网站建设公司
  • 2o17甘孜建设网站百度商家平台客服电话