由于React中css模塊化的原因,原先寫頁面時(shí)簡單的css :onhover 變得需要js來操控監(jiān)聽事件楣责,動(dòng)態(tài)添加classname的需求自然就會(huì)出來,
簡單的監(jiān)聽可以用className的三目運(yùn)算符來實(shí)現(xiàn)确憨。
但是當(dāng)狀態(tài)管理趨向復(fù)雜国撵。就需要classNames的第三方依賴,結(jié)合前面的animate.css和模板字符串。最終實(shí)現(xiàn)方式如圖
引入classnames庫
import classnames from 'classnames'? ?注意!此處classnames的值跟后面的對(duì)象名要保持一致供搀。
然后在classnames的用法中阿宅,給值為true則說明使用,為flase則不可使用洽损。此處拓展后可動(dòng)態(tài)控制添加,結(jié)合狀態(tài)管理之后(state或者redux等)
然后這邊圖中用了模板字符串,加上數(shù)組潮太,因?yàn)闆]有模板字符串的話顯示會(huì)有點(diǎn)問題,結(jié)合css模塊化虾攻。
圖中的實(shí)現(xiàn)方式應(yīng)該是較為合理的方案了铡买。
相關(guān)文獻(xiàn)參考:react中使用classname
實(shí)現(xiàn)完整點(diǎn)擊動(dòng)態(tài)添加animatecss效果后的案例代碼參考