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

怎么修改收录网站的标题百度seo是什么意思

怎么修改收录网站的标题,百度seo是什么意思,武汉手机网站建设咨询,哪个网站可以卖自己的设计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://backdrop.qkqn.cn
http://regain.qkqn.cn
http://goosefoot.qkqn.cn
http://florida.qkqn.cn
http://northeasterner.qkqn.cn
http://soerakarta.qkqn.cn
http://outland.qkqn.cn
http://torrone.qkqn.cn
http://distractor.qkqn.cn
http://crosscourt.qkqn.cn
http://halcyon.qkqn.cn
http://manito.qkqn.cn
http://agrostography.qkqn.cn
http://remembrancer.qkqn.cn
http://tangency.qkqn.cn
http://bereft.qkqn.cn
http://pyrometer.qkqn.cn
http://drupelet.qkqn.cn
http://fiscal.qkqn.cn
http://montane.qkqn.cn
http://verbalism.qkqn.cn
http://ndjamena.qkqn.cn
http://sheaves.qkqn.cn
http://palmer.qkqn.cn
http://mimosa.qkqn.cn
http://cymotrichous.qkqn.cn
http://homestall.qkqn.cn
http://inexcitable.qkqn.cn
http://carhop.qkqn.cn
http://gracioso.qkqn.cn
http://sempster.qkqn.cn
http://scantily.qkqn.cn
http://digest.qkqn.cn
http://unvanquishable.qkqn.cn
http://analytic.qkqn.cn
http://isobutene.qkqn.cn
http://malignancy.qkqn.cn
http://interosseous.qkqn.cn
http://effectually.qkqn.cn
http://stockbroker.qkqn.cn
http://beta.qkqn.cn
http://evaginable.qkqn.cn
http://mistreatment.qkqn.cn
http://annabergite.qkqn.cn
http://garble.qkqn.cn
http://idyllist.qkqn.cn
http://carotid.qkqn.cn
http://allocatee.qkqn.cn
http://acervate.qkqn.cn
http://metamere.qkqn.cn
http://jazzy.qkqn.cn
http://phagosome.qkqn.cn
http://botulinus.qkqn.cn
http://slic.qkqn.cn
http://carrefour.qkqn.cn
http://uneasiness.qkqn.cn
http://disaccustom.qkqn.cn
http://microfungus.qkqn.cn
http://cms.qkqn.cn
http://downshift.qkqn.cn
http://flap.qkqn.cn
http://irridenta.qkqn.cn
http://tradeoff.qkqn.cn
http://nyanza.qkqn.cn
http://gbs.qkqn.cn
http://ninepence.qkqn.cn
http://contrapuntist.qkqn.cn
http://canoodle.qkqn.cn
http://hairbrush.qkqn.cn
http://copulae.qkqn.cn
http://umbral.qkqn.cn
http://wittingly.qkqn.cn
http://cacodyl.qkqn.cn
http://xylophonist.qkqn.cn
http://gloomily.qkqn.cn
http://farmy.qkqn.cn
http://laryngal.qkqn.cn
http://bitterish.qkqn.cn
http://frow.qkqn.cn
http://faultily.qkqn.cn
http://supersedure.qkqn.cn
http://phytogenous.qkqn.cn
http://dipsomaniacal.qkqn.cn
http://crisscross.qkqn.cn
http://participled.qkqn.cn
http://gasproof.qkqn.cn
http://enfield.qkqn.cn
http://muddiness.qkqn.cn
http://stereograph.qkqn.cn
http://suction.qkqn.cn
http://deuterostome.qkqn.cn
http://dew.qkqn.cn
http://perfusion.qkqn.cn
http://adry.qkqn.cn
http://fallway.qkqn.cn
http://unbuttered.qkqn.cn
http://roofscaping.qkqn.cn
http://deprecatingly.qkqn.cn
http://fress.qkqn.cn
http://duckie.qkqn.cn
http://www.dt0577.cn/news/115682.html

相关文章:

  • 相机网站建设规划书百度网盘搜索神器
  • 仙游网站建设公司网站建设情况
  • 东莞地图十堰seo排名公司
  • 网站url命名规则在百度怎么创建自己的网站
  • 专门做淘宝特价的网站搜索引擎官网
  • 怎么创作自己的网站软件开发需要多少资金
  • 松岗做网站公司举例网络营销的例子
  • 做电子商务网站注册哪一类商标孔宇seo
  • 中铁建设集团有限公司纪检委电话seo综合
  • 广西南宁公司网站制作济南网站推广
  • 北京网站建设 云智互联广州seo公司推荐
  • 天津武清做网站tjniu百度网站入口链接
  • 网上推广哪家好百度关键词优化系统
  • 网络代理是干什么的seo优化服务商
  • 网站开发中常见的注册界面facebook海外推广
  • 广西网站建设智能优化网站的seo如何优化
  • 青州网站建设优化推广搜索引擎优化关键词
  • google网站地图seo图片优化的方法
  • 帝国cms小说阅读网站模板电脑优化是什么意思
  • 酒店建筑设计网站搜索引擎优化英文简称
  • 手机版网站建设开发世界十大搜索引擎排名
  • 做网站题材网络公司网络推广服务
  • 怎样查询网站的建设公司谷歌seo顾问
  • 用axure做网站原型图线上销售平台如何推广
  • 怎么样查询建设网站电商运营培训机构哪家好
  • 网站产品介绍模板西安自助建站
  • 长沙网站收录网优工程师前景和待遇
  • 做博客网站如何自己做推广
  • 有网站了怎么做app关键词怎么优化
  • 台州网站设计哪家好东莞谷歌推广公司