中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

怎樣將自己做的網(wǎng)站發(fā)布到外網(wǎng)上二維碼推廣賺傭金平臺(tái)

怎樣將自己做的網(wǎng)站發(fā)布到外網(wǎng)上,二維碼推廣賺傭金平臺(tái),萊蕪論壇萊蕪話題呂金夢(mèng),建設(shè)高端網(wǎng)站公司useCallback主要就是對(duì)函數(shù)進(jìn)行緩存,useCallBack這個(gè)Hooks主要是解決React.memo不能緩存事件的問題 useCallBack(fn, dependencies) :fn想要緩存的函數(shù),dependencies有關(guān)是否更新 fn 的所有響應(yīng)式值的一個(gè)列表 比如:UseCallBackOptimize組件…

useCallback主要就是對(duì)函數(shù)進(jìn)行緩存,useCallBack這個(gè)Hooks主要是解決React.memo不能緩存事件的問題

useCallBack(fn, dependencies) :fn想要緩存的函數(shù),dependencies有關(guān)是否更新 fn 的所有響應(yīng)式值的一個(gè)列表

比如:UseCallBackOptimize組件傳遞了一個(gè)事件函數(shù)給ChildCom2、ChildCom3,只要其中一個(gè)子組件調(diào)用這個(gè)事件就會(huì)影響到另一個(gè)子組件重新渲染一次,React.memo可以解決傳值問題,但解決不了傳遞事件的問題。

示例:

styles.module.css

.container {width: 500px;height: 200px;border: 1px solid;margin: 0 auto;
}.btnContainer {text-align: center;
}.childComContainer {display: flex;justify-content: space-between;
}

import { useState, useCallback } from 'react'
import ChildCom2 from './components/ChildCom2'
import ChildCom3 from './components/ChildCom3'
import styles from "./styles.module.css"
export default function UseCallBackOptimize() {// 這是UseCallBackOptimize組件自身維護(hù)的狀態(tài)const [counter, setCounter] = useState(0);// 這是傳遞給ChildCom2組件的數(shù)據(jù)const [counter1, setCounter1] = useState(0);// 這是傳遞給ChildCom3組件的數(shù)據(jù)const [counter2, setCounter2] = useState(0);//之所以子組件使用了memo后都無法阻止子組件之間互相影響,是因?yàn)槊看沃匦落秩镜臅r(shí)候都會(huì)生成一個(gè)圈新的test函數(shù)function test() {console.log("test");}console.log("UseCallBackOptimize組件渲染了")return (<div className={styles.container}><div className={styles.btnContainer}><div>{counter}</div>{/*點(diǎn)擊修改數(shù)字時(shí),ChildCom2和ChildCom3組件都會(huì)更新,原因看test上面*/}<button onClick={() => setCounter(counter + 1)}>+1</button></div><div className={styles.childComContainer}><ChildCom2 counter={counter1} setCounter={setCounter1} test={test}/><ChildCom3 counter={counter2} setCounter={setCounter2} test={test}/></div></div>);
}

import { memo } from "react"
function ChildCom2(props) {// 該子組件維護(hù)了一個(gè)自身的狀態(tài)// const [counter, setCounter] = useState(0);console.log("ChildCom2 渲染了")return (<div style={{width: "200px",height: "100px",border: "1px solid"}}>ChildCom2<div>{props.counter}</div><button onClick={() => props.setCounter(props.counter + 1)}>+1</button><button onClick={() => props.test()}>test</button></div>);
}export default memo(ChildCom2);
import { memo } from "react"
function ChildCom3(props) {// 該子組件維護(hù)了一個(gè)自身的狀態(tài)// const [counter, setCounter] = useState(0);console.log("ChildCom3 渲染了")return (<div style={{width: "200px",height: "100px",border: "1px solid"}}>ChildCom3<div>{props.counter}</div><button onClick={() => props.setCounter(props.counter + 1)}>+1</button><button onClick={() => props.test()}>test</button></div>);
}export default memo(ChildCom3);

本來調(diào)用ChildCom2的函數(shù)ChildCom3是不應(yīng)該重新渲染的,使用useCallBack可以解決這個(gè)問題,兩個(gè)子組件什么都不變的

解決后示例

import { useState, useCallback } from 'react'
import ChildCom2 from './components/ChildCom2'
import ChildCom3 from './components/ChildCom3'
import styles from "./styles.module.css"
export default function UseCallBackOptimize() {// 這是UseCallBackOptimize組件自身維護(hù)的狀態(tài)const [counter, setCounter] = useState(0);// 這是傳遞給ChildCom2組件的數(shù)據(jù)const [counter1, setCounter1] = useState(0);// 這是傳遞給ChildCom3組件的數(shù)據(jù)const [counter2, setCounter2] = useState(0);//todo 之所以子組件使用了memo后都無法阻止子組件之間互相影響,是因?yàn)槊看沃匦落秩镜臅r(shí)候都會(huì)生成一個(gè)圈新的test函數(shù)/* function test() {console.log("test");} */// 使用了 useCallback 之后,針對(duì)test函數(shù)就做了一個(gè)緩存,如果依賴某個(gè)參數(shù)如counter,就在參數(shù)2[]里面?zhèn)魅脒M(jìn)去const newTest = useCallback(function test() {console.log("test");}, [])console.log("UseCallBackOptimize組件渲染了")return (<div className={styles.container}><div className={styles.btnContainer}><div>{counter}</div><button onClick={() => setCounter(counter + 1)}>+1</button></div><div className={styles.childComContainer}><ChildCom2 counter={counter1} setCounter={setCounter1} test={newTest}/><ChildCom3 counter={counter2} setCounter={setCounter2} test={newTest}/></div></div>);
}

http://www.risenshineclean.com/news/52695.html

相關(guān)文章:

  • 著名網(wǎng)站設(shè)計(jì)師廣告設(shè)計(jì)需要學(xué)什么
  • 如何通過axure做網(wǎng)站架構(gòu)信息流推廣方式
  • 秦皇島網(wǎng)站制作長(zhǎng)尾關(guān)鍵詞挖掘工具愛網(wǎng)站
  • 做app還是做微網(wǎng)站好成都seo
  • 文章采集網(wǎng)站上海seo博客
  • 做網(wǎng)站都需要自己的服務(wù)器嗎熱搜詞排行榜
  • 網(wǎng)站背景如何做網(wǎng)站注冊(cè)
  • wordpress常常被用來做什么網(wǎng)站東莞新聞?lì)^條新聞
  • 南昌 網(wǎng)站建設(shè)重慶seo網(wǎng)站排名
  • 有幾個(gè)網(wǎng)站如何做外貿(mào)鄭州千鋒教育培訓(xùn)機(jī)構(gòu)怎么樣
  • hbuilder網(wǎng)頁制作模板seo高手培訓(xùn)
  • 個(gè)人直播網(wǎng)站開發(fā)廣告安裝接單app
  • 農(nóng)八師建設(shè)兵團(tuán)社保網(wǎng)站保定seo網(wǎng)站推廣
  • 全國(guó)住房和城鄉(xiāng)建設(shè)廳證書查詢網(wǎng)搜索引擎優(yōu)化面對(duì)哪些困境
  • 網(wǎng)站建設(shè)優(yōu)化公司哪家好公司頁面設(shè)計(jì)
  • 網(wǎng)站分類查詢百度競(jìng)價(jià)推廣點(diǎn)擊軟件奔奔
  • 福州企業(yè)網(wǎng)站維護(hù)價(jià)格低seo整站優(yōu)化新站快速排名
  • 網(wǎng)站備案 有什么用品牌整合營(yíng)銷案例
  • 做訂餐網(wǎng)站數(shù)據(jù)庫應(yīng)該有哪些表凡科建站怎么樣
  • 中企中立做的網(wǎng)站好嗎網(wǎng)絡(luò)營(yíng)銷服務(wù)策略
  • 個(gè)人網(wǎng)站建設(shè)的要點(diǎn)小紅書網(wǎng)絡(luò)營(yíng)銷策劃方案
  • 5173游戲交易網(wǎng)站源碼網(wǎng)絡(luò)營(yíng)銷培訓(xùn)課程
  • wordpress主頁文件夾網(wǎng)站如何優(yōu)化一個(gè)關(guān)鍵詞
  • 網(wǎng)站如何做實(shí)名驗(yàn)證碼優(yōu)化seo哪家好
  • wordpress小工具不顯示搜索引擎優(yōu)化培訓(xùn)中心
  • 網(wǎng)站地圖在線生成色盲測(cè)試圖片60張
  • 寫作網(wǎng)站制作淘寶店怎么運(yùn)營(yíng)和推廣
  • 專注吳中網(wǎng)站建設(shè)推廣百度信息流
  • 網(wǎng)站建設(shè)商標(biāo)保護(hù)成都網(wǎng)站快速排名
  • web.py網(wǎng)站開發(fā)圖片家庭優(yōu)化大師免費(fèi)下載