4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

1. インラインスタイル

仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェクトを渡す必要があります。インラインスタイルを実装するには、スタイルオブジェクトを記述する必要があります。このスタイルオブジェクトは、 render関数内、コンポーネントプロトタイプ上、外部jsファイル内など、さまざまな場所に配置できます。
注: ここには 2 つの括弧があります。最初の括弧は JSX に JS を挿入していることを示し、2 番目の括弧はオブジェクトの括弧です。

<p style={{color:'red', fontSize:'14px'}}>こんにちは世界</p>

2. クラスを使用する

React では各コンポーネントを独立したエンティティと見なすため、インライン スタイルを使用することを推奨しています。

実際、ほとんどの場合、要素に多くのクラス名を追加しますが、 class classNameとして記述する必要があることに注意してください(結局のところ、jsのようなコードを記述し、jsルールを受け取るため、 classはキーワードです)

React をインポートします。{ コンポーネント } を 'react' からインポートします。
1. 外部で定義されたスタイルをインポートする './style.css' からスタイルをインポートする

クラスClassStyleはComponentを拡張します{
  与える() {
    // js ロジック let className = cx({
      フォント: false
    })
    戻る (
      <>
        <div className={className}>こんにちは</div>
        <p className='setstyle'>スタイル</p>
        <Divコンテナ>
          世界
        </DivContainer>
      <>
    )
  }
}

デフォルトのClassStyleをエクスポートする

3. 異なるclassNames条件に異なるスタイルを追加する

場合によっては、完了ステータス (完了は緑、未完了は赤など) に応じて異なるスタイルを追加する必要があります。この場合、classnames パッケージを使用することをお勧めします。
目的:
React Nativeは複数のclassNameを動的に追加するため、エラーが報告されます。

'./style.css' からスタイルをインポートします
<div className={style.class1 style.class2}</div>

最終的なレンダリング効果は次のとおりです。

<div クラス = 'クラス1 クラス2'></div>

ダウンロードしてインストールする

npm i -S クラス名

使用

'classnames' からクラス名をインポートします
<div className=クラス名({
    'class1': 真、
    'クラス2': 真
    )>
</div>

4. CSS-in-JS

styled-components React 用に書かれた CSS-in-JS フレームワークです。簡単に言えば、CSS を JS で記述することを意味します。 npmリンク

  • 従来のフロントエンド ソリューションでは、「関心の分離」の原則が推奨されています。HTML、CSS、JavaScript はそれぞれの機能を実行し、分離する必要があります。
  • React プロジェクトでは、コンポーネント ベースのソリューションがより推奨されており、HTML、CSS、JavaScript を集中的に記述および管理する方法が自然に形成されます。

styled-components は、おそらく CSS-in-JS の最も人気のあるライブラリです。styled-components を使用すると、ES6 のタグ テンプレート文字列構文を使用して、スタイル設定が必要なコンポーネントの一連の CSS プロパティを定義できます。コンポーネントの JS コードが解析され実行されると、styled-components は CSS セレクターを動的に生成し、対応する CSS スタイルをスタイル タグの形式でヘッド タグに挿入します。動的に生成された CSS セレクターには、スタイルの競合を避けるためにグローバルな一意性を保証する小さなハッシュ値が設定されます。

1. インストール

npm i -S スタイル付きコンポーネント

スタイルの定義
2. スタイルjsファイル

'styled-components' から styled をインポートします
const タイトル = styled.div`
    色:赤;
    フォントサイズ:16px;
    h3{
        色:青;
        フォントサイズ:20px;
    }
`
輸出 {
    タイトル
}

通常のReactコンポーネントと同じようにタイトルを使用して表示します。

React をインポートします。{ コンポーネント } を 'react' からインポートします。
'./Styles' から { Title } をインポートします
クラスAppはComponentを拡張します{
与える() {
    戻る (
        <div>
            <タイトル>
            私はただのタイトルです <h3>Hello World</h3>
            </タイトル>
        </div>
        );
    }
}
デフォルトアプリをエクスポート

3. スタイル継承スタイル

'styled-components' から styled をインポートします
const ボタン = styled.button`
    フォントサイズ: 20px;
    境界線: 1px 実線の赤;
    境界線の半径: 3px;
`;

// Button を継承し、いくつかのスタイルをオーバーライドする新しいコンポーネント const Button2 = styled(Button)`
    色: 青;
    境界線の色: 黄色;
`;

輸出 {
    ボタン、
    ボタン2
}

見せる

React をインポートします。{ コンポーネント } を 'react' からインポートします。
輸入 {
ボタン、
ボタン2
} './Styles' から
クラスAppはComponentを拡張します{
与える() {
    戻る (
    <div>
        <Button>私はボタン1です</Button>
        <Button2>私はボタン2です</Button2>
    </div>
    );
}
}
デフォルトアプリをエクスポート

4. 属性転送スタイル

'styled-components' から styled をインポートします
const 入力 = styled.input`
    色: ${props => props.inputColor || "青"};
    境界線の半径: 3px;
`;
輸出 {
    入力
}

見せる

React をインポートします。{ コンポーネント } を 'react' からインポートします。
'./Styles' から { Input } をインポートします
クラスAppはComponentを拡張します{
与える() {
    戻る (
    <div>
        <Input defaultValue="Hello" inputColor="red"></Input>
    </div>
    );
}
}
デフォルトアプリをエクスポート

4つのReactコンポーネントでDOMスタイルを設定する方法についての記事はこれで終わりです。ReactコンポーネントのDOMスタイルに関する関連コンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • React で指定された DOM ノードにコンポーネントをレンダリングする方法

<<:  タイプファイルの入力ボタン機能の研究

>>:  MYSQL 文字列強制変換メソッドの例

推薦する

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

格納可能なセカンダリメニューを実装するための JavaScript

JavaScriptで格納可能なセカンダリメニューを実装するための具体的なコードは参考までに。具体...

Websocket に基づくシンプルなチャットルームダイアログの実装

この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを...

Javascript の奇妙な点をご存知ですか?

私たちのベテランの先人たちは、数え切れないほどのコードを書き、数え切れないほどの落とし穴に陥ってきま...

Bootstrap Webページレイアウトグリッドの実装

目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...

Linux に MySQL をインストールする方法 (yum とソース コードのコンパイル)

Linux に MySQL をインストールするには、yum インストールとソース コード コンパイ...

Vueソースコード解析における仮想DOMの詳しい説明

なぜ仮想DOMが必要なのでしょうか?仮想 DOM はブラウザのパフォーマンス問題を解決するために設計...

js で 0ms 遅延タイマーを実装するいくつかの方法

目次キューマイクロタスク非同期/待機メッセージチャネルやっと付録ここ二日間、「タイムリーな setT...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

WINDOWS での MYSQL のインストールに関する詳細なチュートリアル

1. インストールパッケージをダウンロードする- お使いのコンピュータシステムに応じて適切なバージョ...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

HTMLの基本構文は、HTMLを学び始めたばかりの人にとって便利です。

1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...

reactにおけるstateの略語の詳細な説明

序文国家とは何か私たちは皆、React はステート マシンであると言います。それはどのように反映され...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

Linux システムが VMware にインストールされているかどうかを確認する方法

現在の Linux システムが VMware にインストールされているかどうかを確認する方法を教えて...