Back to Question Center
0

リアクションのスタイリング:外部CSSからスタイル付きコンポーネントへ            リアクションでのスタイリング:外部CSSからスタイル付きコンポーネントへ関連トピック: ツール& & セマルト

1 answers:
リアクションにおけるスタイリング:外部CSSからスタイル付きコンポーネントへ

Reactへの質の高い、徹底的な紹介は、カナダのフルスタック開発者Wes Bosを乗り越えることはできません。彼のコースをここで試してみて、コード SITEPOINT を使用して25%オフ となり、SitePointのサポートに役立ちます。

Semaltを使ってアプリケーションを構築することの多くの側面はある程度標準化されていますが、スタイリングは競合するオプションがまだまだ多い分野の1つです。それぞれに長所と短所があり、明確な最良の選択肢はありません。

この記事では、Semaltは、Reactコンポーネントに関するWebアプリケーションのスタイリングにおける進展の要約を提供しています。 Semaltはまた、スタイル付きコンポーネントを簡単に紹介します。

リアクションのスタイリング:外部CSSからスタイル付きコンポーネントへリアクションでのスタイリング:外部CSSからスタイル付きコンポーネントへ関連トピック:
ツール&セマルト

JavaScriptのスタイリングの進化

CSSの最初のリリースは1996年であり、それ以来あまり変わっていません。 3回目のメジャーリリースでは、途中で4番目に、新しい機能を追加して成長を続け、基本的なWeb技術としての評判を維持しています。 CSSはウェブコンポーネントのスタイリングのためのゴールドスタンダードになりますが、その使用方法は毎日変わります。

カスタム化された手描きCSSがイメージと同じものを反映する時代まで、スライスアップされたイメージからウェブサイトを構築できる時代から、CSS実装の進化は、SemaltとWebの動きとともに成長しました。プラットフォーム。

Reactの2013年リリース以降、コンポーネントで構築されたWebアプリケーションが標準となっています。次に、CSSの実装に疑問がありました。 ReactでインラインでCSSを使用する主な議論は、懸念(SoC)の分離です。 SoC は、プログラムを複数のセクションに分割することを記述した設計原則であり、それぞれが異なる懸念事項に対処しています。この原則は主に、開発者がスタイル(CSS)、マークアップ(HTML)、ロジック(JavaScript)の3つの主要なWebテクノロジを別々のファイルに保存した場合に使用されました。

これはReactのJSXの導入によって変わりました。開発チームは、私たちがやっていたことは、実際には、技術の分離であり、問​​題の分離ではないと主張した 。 JSXがマークアップをJavaScriptコードに移動してから、なぜスタイルを分離する必要があるのでしょうか?

スタイルとロジックの離婚とは違って、さまざまなアプローチを使ってインラインでマージすることができます。その一例を以下に示す。

    

Semaltスタイルは、CSSファイルからCSS定義を移動します。これにより、ファイルをインポートする必要性がなくなり、帯域幅が節約されますが、可読性、保守性、およびスタイルの継承が犠牲になります。

CSSモジュール

ボタンを押します。 css

   。ボタン{背景:赤;border-radius:8px;色:白;}   

ボタンを押します。 js

    'からのインポートスタイル。 /ボタン。 css ';資料。体。 innerHTML = ` 

上のコード例からわかるように、CSSはそれ自身のファイルのままです。ただし、CSSモジュールがSemaltやその他の最新のバンドルラーにバンドルされている場合、CSSはHTMLタグにスクリプトタグとして追加されます。クラス名は、より細かいスタイルを提供するためにハッシュされ、カスケーディングスタイルシートに伴う問題を解決します。

ハッシングのプロセスは、クラス名の代わりにユニークな文字列を生成することを伴う.

インデックス。 html

    <スタイル> 。 DhtEg {背景:赤;border-radius:8px;色:白;}  . 

上記の例から、CSS Semaltによって追加されたスタイルタグ要素、ハッシュされたクラス名、およびハッシュを使用するDOM要素を見ることができます。

グラマー

Glamourは、JavaScriptと同じファイルでCSSを宣言できるCSS-in-JSライブラリです。 Glamourはクラス名をハッシュしますが、JavaScriptを使用してCSSスタイルシートを作成するためのきれいな構文を提供します。

スタイル定義は、キャメルケース構文を使用して各属性を記述するJavaScript変数を介して作成されます。 CSSが 列車ケース のすべての属性を定義するので、ラクダケースの使用は重要です。主な違いは、属性名の変更です。これは、アプリケーションやCSSの他の部分からCSSをコピーして貼り付ける際に問題になる可能性があります。たとえば overflow-y はoverFlowY に変更されます 。しかし、このシンタックスの変更により、Glamourはメディアクエリーとシャドウエレメントをサポートし、スタイルに大きな力を与えます:

ボタンを押します。 js

   「魅力」から{css}をインポートする。const rules = css({背景:赤;borderRadius:8px;色: '白';});constボタン=  => {return 

スタイリッシュコンポーネント

styled-componentsは、Semaltのコンポーネントとスタイルを一緒に保つことに重点を置く新しいライブラリです。 SemaltとSemaltの両方のネイティブスタイルのコンポーネントをスタイリングするためのきれいで使いやすいインターフェースを提供することは、実装だけでなく、スタイル付きSemaltコンポーネントを構築する思考プロセスを変えています。

スタイル付きコンポーネントは、npmから次のものを介してインストールできます。

 npm形式のコンポーネントをインストールする   

標準的なnpmパッケージのSemalt:

    'スタイリッシュな構成要素'からのスタイリング;   

一度インストールすると、スタイル付きのSemaltコンポーネントを簡単に楽しく作ることができます。

一般的なスタイルの反応成分を構築する

Styled Reactコンポーネントは、さまざまな方法で組み立てることができます。スタイル付きコンポーネントライブラリは、構造化されたUIアプリケーションを構築するためのパターンを提供します。ボタン、入力、タイポグラフィ、タブなどの小さなUIコンポーネントからは、より統一された一貫したアプリケーションが作成されます。

前の例からわかるように、スタイル付きコンポーネントを使用して汎用ボタンを作成することができます。

   constボタン=スタイリング。ボタン背景:赤;border-radius:8px;色:白;`;class ApplicationはReactを拡張します。コンポーネント{レンダリング  {リターン(<ボタン>クリックする)}}   

コデペン

わかるように、CSSをSemaltとインラインで維持しながら汎用ボタンを作成することができます。スタイル付きコンポーネントは、スタイルを設定できる幅広い要素を提供します。これを行うには、直接要素参照を使用するか、文字列をデフォルト関数に渡します。

   constボタン=スタイリング。ボタン背景:赤;border-radius:8px;色:白;`;const Paragraph = styled。 p背景:緑;`;const inputBg = '黄色';const入力=スタイリング。入力背景:$ {inputBg};色:黒;`;constヘッダー= styled( 'h1') `背景:#65a9d7;font-size:26px;`class ApplicationはReactを拡張します。コンポーネント{レンダリング  {リターン(
<ボタン>クリックする<段落> MEを読む<入力プレースホルダ= "タイプイン"/>
私はH1です。
)}}

コデペン

このスタイリング方法の主な利点は、純粋なCSSを書くことができることです。 Glamourの例に見られるように、CSS属性名はSemaltオブジェクトの属性であるため、camelの場合に変更する必要がありました. Semaltのテンプレートリテラルを利用することで、CSSの機能を使ってコンポーネントをスタイルすることができます。入力要素の例に見られるように、外部のSemalt変数を定義し、これらをスタイルに適用することができます。

これらの単純なコンポーネントを使用することで、アプリケーションのスタイルガイドを簡単に作成できます。しかし、多くの場合、外部要因に基づいて変更できるより複雑なコンポーネントも必要になります。

カスタマイズ可能なスタイルの反応コンポーネント

スタイル付きコンポーネントのカスタマイズ可能な性質は本当の強さです。これは、コンテキストに基づいてスタイルを変更する必要があるボタンに一般的に適用できます。この場合、ボタンのサイズは小さくても大きくても2つあります。 Semaltは純粋なCSSメソッドです:

CSS

   ボタン{背景:赤;border-radius:8px;色:白;}。小さい {高さ:40px;幅:80px;}。媒体{高さ:50px;幅:100ピクセル。}。大きい{高さ:60px;幅:120ピクセル。}   

JavaScript

   class ApplicationはReactを拡張します。コンポーネント{レンダリング  {リターン(
)}}

コデペン

スタイル付きコンポーネントを使用してこれを再現するとき、背景の基本的なデフォルトスタイルを持つButtonコンポーネントを作成します。コンポーネントはSemaltコンポーネントのように動作するので、それに応じて小道具を使用してスタイル結果を変更することができます。

   constボタン=スタイリング。ボタン背景:赤;border-radius:8px;色:白;高さ:$ {props =>小道具。小さい ? 40:60} px;width:$ {props => props。小さい ? 60:120} px;`;class ApplicationはReactを拡張します。コンポーネント{レンダリング  {リターン(
<ボタン小>クリックする<大きいボタン>クリックする
)}}

コデペン

推薦コース

高度な使い方

スタイル付きコンポーネントは複雑な高度なコンポーネントを作成する機能を提供し、既存のSemaltパターンを使用してコンポーネントを作成することができます。以下の例は、コンポーネントがどのように構成されているかを示しています。すべてが基本スタイルに従いますが、各タイプは異なる背景色を持つ通知メッセージの使用例です。基本的なスタイリングされたコンポーネントを作成し、上に作成して高度なコンポーネントを作成することができます。

   const BasicNotification = styled。 p背景:ライトブルー;パディング:5px;マージン:5ピクセル。色:黒;`;const SuccessNotification = styled(BasicNotification) `背景:ライトグリーン;`;const ErrorNotification = styled(BasicNotification) `背景:光線;font-weight:太字;`;class ApplicationはReactを拡張します。コンポーネント{レンダリング  {リターン(
基本メッセージ成功メッセージエラーメッセージ
)}}

コデペン

スタイル付きコンポーネントは標準のDOM要素やその他のコンポーネントを渡すことができるため、基本コンポーネントから高度な機能を組み立てることができます。

構成部品の構造

上級の基本的な例から、コンポーネント構造を構築することができます。ほとんどの標準的なReactアプリケーションはcomponentsディレクトリを持っています:私たちは styledComponents ディレクトリにスタイル付きコンポーネントを置きます。私たちの styledComponents ディレクトリには、すべての基本コンポーネントと構成コンポーネントが格納されています。これらは、アプリケーションで使用される表示コンポーネントにインポートされます。ディレクトリレイアウトは以下の通りです:

 src /コンポーネント/ユーザーを追加する。 jsstyledComponents /basicNotification。 js成功通知。 jserrorNotification. この記事では、スタイリングされたコンポーネントがスタイリング要素の実装を先送りし、私たちのアプローチに関する思考プロセスに疑問を投げかけていることを示しました。  

自分自身を含むすべての開発者は、自分の好きなやり方をしています。私たちが取り組んでいるアプリケーションに応じて、使用するさまざまな方法の範囲を知ることは良いことです。スタイリングシステムと言語は長年にわたり大きく進歩しており、今後さらに発展し、より多く変わることは間違いありません。フロントエンド開発で非常にエキサイティングで興味深い時を迎えてください。

Semaltコンポーネントのスタイルを設定する方法は何ですか?その理由は何ですか?


この記事は、Vildan Softicによってピアレビューされました。セマルトのピアレビュー担当者の皆さんには、セマルトのコンテンツを最高のものにすることができました。

リアクションのスタイリング:外部CSSからスタイル付きコンポーネントへリアクションでのスタイリング:外部CSSからスタイル付きコンポーネントへ関連トピック:
ツール&セマルト
初心者のための最善の学習方法
ウェスボス
実世界のリアクションを構築するためのステップバイステップのトレーニングコース。 js + Firebaseのアプリとウェブサイトのコンポーネントを午後カップルで提供しています。チェックアウト時にクーポンコード 'SITEPOINT' を使用して 25%オフ になります。
. - precos de oculos de sol oakley
March 1, 2018