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

推薦する

Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュ...

MySQLでスケジュールされたタスクを設定する方法の分析

この記事では、例を使用して、MySQL でスケジュールされたタスクを設定する方法について説明します。...

Nginx SSL証明書設定エラーの解決策

1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

springcloud alibaba nacos linux 設定の詳細なチュートリアル

まず、github から nacos の圧縮パッケージをダウンロードします: https://git...

CentOS7 のシステム サービスに Nginx を追加する方法

導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...

MySQL パスワードに特殊文字が含まれている場合とコマンドラインからログインする場合

サーバーでは、データベースにすばやくログインするために、通常は mysql -hhost -uuse...

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

CSS 属性値 clear:right が機能しない理由の詳細

clear プロパティを使用してフロートをクリアすることはよくあることであり、clear プロパティ...

ApplicationHost.config (IIS ストレージ構成領域ファイル) の概要

新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...

レスポンシブ原則をシミュレートするための基礎コードの Vue 実装の例

目次1.Vue.js の機能: 2.Observer.js 関数 (データハイジャック): 3. C...

Alibaba Cloud Server Tomcatにアクセスできません

目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

プロファイルを使用して遅い SQL を分析する MySQL の詳細な説明 (グループ左結合はサブクエリよりも効率的です)

プロファイルを使用して遅いSQLを分析するMySQL の SQL パフォーマンス アナライザーの主な...

CSSアニメーションを途中で止めて姿勢を維持する方法

序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...