window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() なぜスタイル付きコンポーネントの代わりにSCSSを使うべきなのか?- The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2021-10-05
ソフトウェア開発

なぜスタイル付きコンポーネントの代わりにSCSSを使うべきなのか?

The Codest

ヤチェク・ルジーク

プロダクトデザイナー

ここ数ヶ月、あるクライアントのプロジェクトに携わっていた。最初の頃、スタイリングに使うライブラリーの選択に迫られた。

プレーンなCSSやEmotionなど、一般的なソリューションと比較した結果、Emotionが最も適していると判断しました、 SCSS そして スタイル・コンポーネントそして最後の1本を選んだ。すべて順調だったようだ。今、非常に人気のあるライブラリーを持っている。
すでに大きなコミュニティがあるから、もし何か問題に直面しても、Stack OverflowかGitHubのどこかで解決策が見つかるだろう。それ以外にも、 スタイル・コンポーネント は、必要なときだけレンダリングする最適化機能を持っている。つまり プロジェクト は、React と Typescript を使って構築されることが期待されていました。このライブラリは、両方の技術をサポートしている。素晴らしいでしょう?

それからコーディングを始めた。1ヶ月後、アプリが成長したとき、フロントエンドの チーム 私は機能を提供することに集中した。 スタイル・コンポーネント その理由を説明しよう。

まず、命名規則である。区別するために スタイル・コンポーネント Reactのコンポーネントを使用する必要があった。 スタイル 減少した接頭辞 コード 読みやすい。それから(奇妙かもしれないが)、Typescriptのサポート。 スタイル・コンポーネントご存じかもしれませんが、CSS-in-JSのアプローチに基づいています。これは、任意のpropを渡すことができ、このpropに基づいて入力のスタイルを変更できることを意味します。Typescriptでは、このpropの型も実装する必要があります。 スタイル・コンポーネント.「でも、あと5秒もかかるのに、何が問題なんだ」とあなたは言うかもしれない。しかし、アプリが高速にスケールアップし、コンポーネントの数が増えれば、その問題は解決する。
この5秒が何百倍にもなるのだ。もう一つの問題は スタイル・コンポーネント.

一部 JS開発者 コンポーネントと同じファイルに入れる人もいれば、別々のファイルを作る人もいる。どちらのアプローチも多くの理由から良いものです。ほとんどの場合、コンポーネントの複雑さに依存します。これらのテクニックのいずれかに従えば、まとまりを保つことができますが、マージするとまったく逆の結果になります。私たちはCSS-in-JSのアプローチをやめ、CSS-in-JSに移行しました。 SCSS.簡単で手っ取り早いものではありませんでしたが、少しの助けで何とかなりました。私たちはBEMの手法でhtmlタグのスタイル付けを始め、もちろん、スタイルはコンポーネントごとに1つずつ別々のファイルに入れた。JSのpropを スタイル・コンポーネント は素晴らしい機能だが SCSS それは不可能だ。また、Reactが条件付きクラスをコーディングしようとする構文がひどいものであることは、誰もが認めるところだと思う。

リアクトのクラス名のコード

さて、非常に興味深い解決策が1つある。BEMの手法を クルスエックス このライブラリを教えてくれた友人のPrzemek Adamczykに感謝します。

clsxコード

見た目はずっとクリーンだと思わないか?

一番いいのは、コンポーネント・レベルで条件変数をタイプするだけでいいことだ。
スタイリングレベルではありません。本当に時間の節約になる。残念ながら、このような解決策には短所もある。
SCSS は簡単でフレンドリーですが、Next.jsと一緒に使う場合は注意が必要です。このフレームワークは
スタイルファイルをコンポーネントファイルに直接インポートできるようになりました(CSSモジュールのみ)。

コンポーネントごとにファイルを1つ作成したい場合は、次のようにします。 インデックス.scss あなたの SCSS ファイルと
にインポートする。 _app.tsx ファイルにインポートする必要があります。唯一の問題は、手動でそれぞれの SCSS ファイルをインポートすることができます。しかし、Reactではこの問題はなく、インポートすることができます。 SCSS ファイルを好きな場所に置くことができる。誤解しないでほしい。 スタイル・コンポーネント は本当に素晴らしい。前にも言ったように、JS変数の受け渡しやグローバルテーマは素晴らしい機能だ。最適化が重要な大きなアプリを作る場合、このライブラリーはおそらくあなたのニーズを満たしてくれるだろう。しかし、我々の場合は SCSS 大当たりだ。

まとめ

結論として、両者には正当な主張がある。 SCSSとスタイル付きコンポーネント で ウェブ開発 最終的な決断はさまざまな要因に左右される。 SCSS には、より親しみやすい構文が用意されています。 経験豊富な開発者 従来のCSSとシームレスに統合することができる。 コードベース そして コンポーネントライブラリ .

その一方で スタイル・コンポーネント 強化された 開発者経験 は、スタイルをコンポーネント内にカプセル化し、スタイリングプロセスを簡素化する機能を備えています。また、コードのモジュール化と再利用性を促進し、フロントエンドエンジニアが効率的に コンポーネントディレクトリ で一貫したUIを作成する。 ウェブアプリ .の重要性を考慮する。 ユーザーデータ セキュリティとパフォーマンスにおいて、両方のアプローチが最終的なバンドルサイズとロード時間に与える影響を評価することは極めて重要である。最終的には SCSSとスタイル付きコンポーネント プロジェクトの具体的なニーズと、その担当者のスキルセットに基づいて決定されるべきである。 開発チーム という全体的な目標を掲げている。 ウェブアプリケーション .開発者は、すべての要素を評価し、常に最新の情報を入手することが望ましい。 ブログ記事 そして、プロジェクトの要件に合致し、全体的な強化につながる、十分な情報に基づいた決断を下すのだ。 フロントエンド開発プロセス .

関連記事

ソフトウェア開発

チャンピオンの比較Angular vs Vue

現在、いくつかのフロントエンド・フレームワークが一般的に使用され、そのクリエイターたちによって常に開発されている。しかし、それらには共通点があるかもしれない。ここでは...

オリウィア・オレメク

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese