最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React中classnames庫使用示例

 更新時間:2022年10月28日 09:55:53   作者:QiShare  
這篇文章主要為大家介紹了React中classnames庫使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

classnames的引入

從名字上可以看出,這個庫是和類名有關(guān)的。官方的介紹就是一個簡單的支持動態(tài)多類名的工具庫。

支持使用 npm, Bower, or Yarn

使用 npm安裝

npm install classnames

使用 Bower安裝

bower install classnames

使用 Yarn安裝

yarn add classnames

引入

import classnames from ‘classnames';

使用 Node.js, Browserify, or webpack:

Node.js, Browserify, webpack:

var classNames = require('classnames');
classNames('foo', 'bar'); // => 'foo bar'

classnames函數(shù)的使用

classNames 函數(shù)接受任意數(shù)量的參數(shù),可以是string、boolean、number、array、dictionary等。

type ClassValue = string I number I ClassDictionary I ClassArray I undef inednull I boolean;

參數(shù) 'foo' 是 { foo: true } 的縮寫。如果與給定鍵關(guān)聯(lián)的值是false的,則該key值將不會包含在輸出中。

classNames('foo', { bar: true }); // => 'foo bar'
classNames({ 'foo-bar': true }); // => 'foo-bar'
classNames({ 'foo-bar': false }); // => ''
classNames({ foo: true }, { bar: true }); // => 'foo bar'
classNames({ foo: true, bar: true }); // => 'foo bar'
// lots of arguments of various types
classNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'
// other falsy values are just ignored
classNames(null, false, 'bar', undefined, 0, 1, { baz: null }, ''); // => 'bar 1'

數(shù)組的形式

數(shù)組可以按照上面的規(guī)則,遞歸展開數(shù)組中的每一項:

var arr = ['b', { c: true, d: false }];`
classNames('a', arr); // => 'a b c'

ES6中使用動態(tài)類名

let buttonType = 'primary';`
classNames({ [`btn-${buttonType}`]: true });

結(jié)合React一起使用

這個包是classSet的官方替代品,她最初是在React.js插件包中提供的。

常見的一個應(yīng)用場景是根據(jù)條件動態(tài)設(shè)置類名,在React中是會寫出如下的代碼:

class Button extends React.Component {
// ...
render () {
var btnClass = 'btn';
if (this.state.isPressed) btnClass += ' btn-pressed';
else if (this.state.isHovered) btnClass += ' btn-over';
return <button className={btnClass}>{this.props.label}</button>;
}
}

使用classnames可以通過對象非常方便的寫出條件多類名。

var classNames = require('classnames');
class Button extends React.Component {
// ...
render () {
    var btnClass = classNames({
    btn: true,
   'btn-pressed': this.state.isPressed,
   'btn-over': !this.state.isPressed && this.state.isHovered
});
return <button className={btnClass}>{this.props.label}</button>;
}
}

因為可以將對象、數(shù)組和字符串參數(shù)混合在一起,所以支持可選的 className props 也更簡單,因為只有真實的參數(shù)才會包含在結(jié)果中:

var btnClass = classNames('btn', this.props.className, {
'btn-pressed': this.state.isPressed,
'btn-over': !this.state.isPressed && this.state.isHovered
});

總結(jié):

在React項目中使用classnames是非常方便我們管理動態(tài)多類名。為我們的工作真正的提效。

以上就是React中classnames庫使用示例的詳細(xì)內(nèi)容,更多關(guān)于React classnames庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文搞懂?React?18?中的?useTransition()?與?useDeferredValue()

    一文搞懂?React?18?中的?useTransition()?與?useDeferredValue()

    這篇文章主要介紹了一文搞懂?React?18?中的?useTransition()與useDeferredValue(),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • react-native DatePicker日期選擇組件的實現(xiàn)代碼

    react-native DatePicker日期選擇組件的實現(xiàn)代碼

    本篇文章主要介紹了react-native DatePicker日期選擇組件的實現(xiàn)代碼,具有一定的參考價值,有興趣的可以了解下
    2017-09-09
  • React語法中設(shè)置TS校驗規(guī)則的步驟詳解

    React語法中設(shè)置TS校驗規(guī)則的步驟詳解

    這篇文章主要給大家介紹了React語法中如何設(shè)置TS校驗規(guī)則,文中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • React實現(xiàn)單向數(shù)據(jù)流的方法

    React實現(xiàn)單向數(shù)據(jù)流的方法

    本文主要介紹了React實現(xiàn)單向數(shù)據(jù)流的方法
    2023-04-04
  • React實現(xiàn)圖片懶加載的常見方式

    React實現(xiàn)圖片懶加載的常見方式

    圖片懶加載是一種優(yōu)化網(wǎng)頁性能的技術(shù),它允許在用戶滾動到圖片位置之前延遲加載圖片,通過懶加載,可以在用戶需要查看圖片時才加載圖片,避免了不必要的圖片加載,本文給大家介紹了React實現(xiàn)圖片懶加載的常見方式,需要的朋友可以參考下
    2024-01-01
  • 解決React報錯Property 'X' does not exist on type 'HTMLElement'

    解決React報錯Property 'X' does not 

    這篇文章主要為大家介紹了解決React報錯Property 'X' does not exist on type 'HTMLElement',有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React實現(xiàn)響應(yīng)式布局的最佳實踐

    React實現(xiàn)響應(yīng)式布局的最佳實踐

    在當(dāng)今的前端開發(fā)中,響應(yīng)式設(shè)計已經(jīng)成為必不可少的部分,隨著各種設(shè)備的出現(xiàn),確保我們的網(wǎng)頁在不同屏幕尺寸上展示良好,已經(jīng)成為開發(fā)者的首要任務(wù)之一,本文將介紹如何在React中實現(xiàn)響應(yīng)式布局,提供一些最佳實踐和示例代碼,幫助大家更好地理解這一概念
    2025-02-02
  • 學(xué)習(xí)ahooks useRequest并實現(xiàn)手寫

    學(xué)習(xí)ahooks useRequest并實現(xiàn)手寫

    這篇文章主要為大家介紹了學(xué)習(xí)ahooks useRequest并實現(xiàn)手寫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • react組件傳值的四種方法

    react組件傳值的四種方法

    本文主要介紹了react組件傳值的四種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Redux模塊化拆分reducer函數(shù)流程介紹

    Redux模塊化拆分reducer函數(shù)流程介紹

    Reducer是個純函數(shù),即只要傳入相同的參數(shù),每次都應(yīng)返回相同的結(jié)果。不要把和處理數(shù)據(jù)無關(guān)的代碼放在Reducer里,讓Reducer保持純凈,只是單純地執(zhí)行計算,這篇文章主要介紹了Redux拆分reducer函數(shù)流程
    2022-09-09

最新評論

商河县| 兴海县| 兴安县| 武功县| 界首市| 河池市| 若尔盖县| 云和县| 永嘉县| 花莲市| 彭阳县| 攀枝花市| 芜湖县| 洛隆县| 平遥县| 宝兴县| 桓仁| 瓦房店市| 红河县| 会宁县| 平陆县| 沛县| 泉州市| 新津县| 延安市| 抚顺县| 南靖县| 连州市| 台山市| 石屏县| 雅安市| 原阳县| 洛川县| 东兰县| 湘乡市| 临湘市| 深州市| 阿克| 南阳市| 永济市| 忻城县|