日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
四個非常有用的React技巧

1.不要忘記在組件卸載時移除監(jiān)聽器

我們經(jīng)常需要在React的useEffect中監(jiān)聽鍵盤事件、鼠標(biāo)事件等,但是我們經(jīng)常忘記刪除它們。

創(chuàng)新互聯(lián)主營新密網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),新密h5小程序定制開發(fā)搭建,新密網(wǎng)站營銷推廣歡迎新密等地區(qū)企業(yè)咨詢

const windowScroll = () => {
console.log('scroll')
}


useEffect(() => {
window.addEventListener("scroll", windowScroll, false)
}, [])

是的,當(dāng)我們回到這個組件的時候,scroll事件又會被監(jiān)聽。

換句話說,我們可能會將數(shù)千個 windowScroll 函數(shù)綁定到 window, 這將導(dǎo)致內(nèi)存泄漏和偵聽器的意外行為。

請不要忘記在組件卸載時移除監(jiān)聽器。

const windowScroll = () => {
console.log('scroll')
}


useEffect(() => {
window.addEventListener("scroll", windowScroll, false)
return () => {
window.removeEventListener('scroll', windowScroll, false)
}
}, [])

2.請謹(jǐn)慎使用0,它是魔鬼

你可能寫過類似下面的代碼,它顯示了什么?還是什么都沒有顯示?

const App = () => {
const [ list, setList ] = useState([])


return (
list.length && (

{list.map((name) => {
return
{name}

})}

)
)
}

我不認(rèn)為這段代碼有什么問題!但是確實顯示了0。難道是React的BUG?

const i = 0
const b = 'fatfish'


console.log(i && b)

我錯了,這不是 React 中的錯誤,它完全符合 JavaScript 語法。

為了避免錯誤顯示0,我們需要使用以下三種方法來解決這個問題。

// 1. Controlled by specific logic
list.length >= 1 &&
// 2. Convert list.length to boolean
!!list.length &&
// 3. Use ternary expressions and null
list.length ? : null

3. 如何輕松將 true 傳遞給子元素

我們經(jīng)常需要在調(diào)用一個組件的時候給它傳遞一個布爾值,比如顯式傳遞true。

const Child = ({ showNav }) => {
return !!showNav &&

實際上,您只需要傳遞 showNav 屬性即可, 它們都具有完全相同的效果。

const Child = ({ showNav }) => {
return !!showNav &&

4. 請不要再使用 props.children

請問這段代碼的結(jié)果是什么?它是空的嗎?

const Container = ({ children }) => {
if (children) {
return (

Children is:


{ children }

)
} else {
return (
empty

)
}
}


const App = () => {
const [ list, setList ] = useState([])


return (

{
list.map((name) => {
return
{ name }

})
}

)
}

不幸的是,答案是:“Children is:”。我的天啊!這是為什么?

其實,此時children是一個空數(shù)組,所以肯定會顯示“Children is:”。我們?nèi)绾谓鉀Q這個問題?React.Children.toArray 會拯救我們。

const Container = ({ children }) => {
if (React.Children.toArray(children).length) {
return (

children is:


{ children }

)
} else {
return (
empty

)
}
}

寫在最后

以上就是今天我跟大家分享的4個非常實用的React技巧,希望能夠幫助到你,編程快樂!


新聞標(biāo)題:四個非常有用的React技巧
文章起源:http://www.5511xx.com/article/dhjsjpg.html