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 文字列強制変換メソッドの例

推薦する

HTML でのフォームとフォーム送信操作に関する情報のコレクション

ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...

Vueオプションの詳細な説明

目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

JavaScript は大容量ファイルのアップロード処理を実装します

数十 MB 程度の小さいものから 1G 以上の大きいものまで、ビデオ ファイルなどのファイルのアップ...

LinuxにPHP7をインストールする方法の詳細な説明

Linux に PHP7 をインストールするにはどうすればいいですか? 1. 依存パッケージをインス...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...

nginx における proxy_pass のさまざまな使用法の詳細な説明

目次プロキシ転送ルール最初のもの: 2番目のタイプ: 3番目のタイプ: 4番目のタイプ: 5番目:プ...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

新しい CSS display:box プロパティの詳細な説明

1. ディスプレイボックス;要素にこのプロパティを設定すると、display:inline-bloc...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

JavaScript マクロタスクとマイクロタスクの実行順序についての簡単な説明

目次1. JavaScriptはシングルスレッドです1. 同期タスク2. 非同期タスク2. タスクキ...

HTML のブロックレベル要素と行レベル要素、特殊文字、ネスト規則

基本的な HTML Web ページ タグのネスト ルールを紹介する場合、最初に説明する必要があるのは...

CSS の読み込みによってブロックが発生しますか?

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

MySQLウィンドウ関数の具体的な使用法

目次1. ウィンドウ関数とは何ですか? 1. ウィンドウをどのように理解しますか? 2. ウィンドウ...

ネイティブ js はフォームの定期的な検証を実装します (検証後にのみ送信)

以下の機能が実装されています。 1. ユーザー名: onfouc は msg ルールを表示します。o...