ホームページ ウェブフロントエンド jsチュートリアル Vue でスコープ付き CSS を使用することと CSS モジュールを使用することの違いは何ですか?

Vue でスコープ付き CSS を使用することと CSS モジュールを使用することの違いは何ですか?

May 28, 2018 pm 03:48 PM
module

今回は、スコープ付き CSS と Vue モジュール での CSS の使用の違いと、Vue でスコープ付き CSS と CSS モジュールを使用する際の 注意事項 についてお届けします。実際のケースを見てみましょう。

スコープ付き CSS

公式ドキュメント

スコープ付き CSS は、実行中の Vue プロジェクトで直接使用できます。

使用法:

<style scoped>
h1 {
 color: #f00;
}
</style>
ログイン後にコピー
scoped を使用してローカルスタイルを分割したコンパイル結果は次のとおりです:

h1[data-v-4c3b6c1c] {
 color: #f00;
}
ログイン後にコピー
つまり、要素に独自の属性を追加して区別します。

欠点

1. ユーザーが他の場所で同じクラス名を定義した場合、コンポーネントのスタイルに影響を与える可能性があります。

2. CSS スタイル

優先度 の特性に従って、スコープ指定された処理により各スタイルの重みが増加します。

理論的には、このスタイルを変更したい場合は、このスタイルをカバーするためにより高い重みが必要になります。

そのため、スコープ付きを含むサードパーティのプラグインを

参照する場合、スタイルを変更する必要がある場合はグローバルに変更する必要があり、重みの問題に注意する必要があり、0.0 では !重要 を使用する以外に選択肢はありません。 。 3. コンポーネントに他のコンポーネントが含まれている場合、現在のコンポーネントの data 属性のみが他のコンポーネントの最も外側のタグに追加されます。

したがって、一般に、親コンポーネントがスコープされている場合、そのコンポーネントは、そのコンポーネントが含まれる子よりも優れています。独自のスタイルを設定します。最も外側のタグを除くコンポーネント内の内側のタグは重みが低く、スタイルには影響しません。

しかし、次のメソッドの影響を受ける可能性もあります:

第 4 に、スコープを指定すると、

タグ セレクター のレンダリングが何倍も遅くなります 公式は次のようないくつかの予防措置を講じています:

us タグ セレクターを使用するとスコープ付きではパフォーマンスが大幅に低下しますが、クラスまたは ID を使用するとパフォーマンスが低下しないことがわかります。

cssモジュール公式ドキュメント

cssモジュールを有効にするには、css-loader設定を追加する必要があります。詳細については、ドキュメントの実装を参照してください。

style-loader を使用している場合、設定を有効にするには、ドキュメントの説明に従って vue-style-loader に変更する必要があります。

2 つの違いはここで見つけることができます。 vue-style-loader

は次のように使用されます:

<template>
 <p :class="$style.gray">
 Im gray
 </p>
</template>
<style module>
.gray {
 color: gray;
}
</style>
ログイン後にコピー

モジュールを使用した結果は次のようにコンパイルされます:

<p class="gray_3FI3s6uz">Im gray</p>
.gray_3FI3s6uz {
 color: gray;
}
ログイン後にコピー

css モジュールが直接使用されていることがわかります。ユーザー設定クラスを除くクラス名を置き換えます。名前がコンポーネントのスタイルに影響を与える可能性があります。

このように、$style.red は変数として使用でき、次のように js で使用できます:

<script>
export default {
 created () {
 console.log(this.$style.gray)
 // -> "gray_3FI3s6uz"
 // 一个基于文件名和类名生成的标识符
 }
}
</script>
ログイン後にコピー

さらに使用したい場合は、モジュールにさらに多くのバインディングと $style があることがわかります。エレガントなので、この vue-css-modules を見てください。

キーフレームでCSSモジュールを使用する際の問題

アニメーション

アニメーションのキーフレームを処理するには、CSSモジュールを使用してください。アニメーション名を最初に記述する必要があります。

animation: ani 1s; は正常にコンパイルできますが、animation: 1s ani; は期待どおりにコンパイルされないため、CSS パラメーターの適切な記述順序を開発することも重要です。

この記事の事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

webpack+react開発環境を構築する方法

Node.jsバッファーの使用方法の詳細な説明


Reactファミリーのバケット環境を構築する方法

以上がVue でスコープ付き CSS を使用することと CSS モジュールを使用することの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

jQueryは要素のパディング/マージンを取得します jQueryは要素のパディング/マージンを取得します Mar 01, 2025 am 08:53 AM

jQueryは要素のパディング/マージンを取得します

jQuery日付が有効かどうかを確認します jQuery日付が有効かどうかを確認します Mar 01, 2025 am 08:51 AM

jQuery日付が有効かどうかを確認します

10 jQuery Accordionsタブ 10 jQuery Accordionsタブ Mar 01, 2025 am 01:34 AM

10 jQuery Accordionsタブ

10 jqueryプラグインをチェックする価値があります 10 jqueryプラグインをチェックする価値があります Mar 01, 2025 am 01:29 AM

10 jqueryプラグインをチェックする価値があります

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

ノードとHTTPコンソールを使用したHTTPデバッグ ノードとHTTPコンソールを使用したHTTPデバッグ Mar 01, 2025 am 01:37 AM

ノードとHTTPコンソールを使用したHTTPデバッグ

jQueryはscrollbarをdivに追加します jQueryはscrollbarをdivに追加します Mar 01, 2025 am 01:30 AM

jQueryはscrollbarをdivに追加します

See all articles