ホームページ > ウェブフロントエンド > Vue.js > Vue3 風の新機能について話しましょう(概要)

Vue3 風の新機能について話しましょう(概要)

青灯夜游
リリース: 2022-05-12 21:23:26
転載
3271 人が閲覧しました

Vue3 はスタイル スタイルをアップグレードしました。次の記事では、Vue3 スタイルの新機能を要約して共有します。皆様のお役に立てれば幸いです。

Vue3 風の新機能について話しましょう(概要)

Vue3.0 以降に導入されたセットアップ機能は、JS を書くように Vue コンポーネントを開発できるほか、スタイルにも変数や関数の導入など多くの新機能が追加されており、 css より再利用可能...

スタイルの新機能

Vue3.2 バージョンでは、単一ファイル コンポーネントのスタイルが改善されています。ローカル スタイル、CSS 変数、テンプレートに公開されるスタイルなどのアップグレードが行われました。 (学習ビデオ共有: vue ビデオ チュートリアル)

1. 部分的なスタイル

場合<style> タグに scoped 属性がある場合、その CSS は現在のコンポーネントの要素にのみ適用されます:

<template>
  <div class="example">hi</div>
</template>
 
<style scoped>
.example {
  color: red;
}
</style>
ログイン後にコピー

##2. 深さセレクター

スコープ付きスタイルのセレクターを使用して、より「深い」選択を行いたい場合は、 : サブコンポーネントに影響を与えるには、:deep() 疑似クラスを使用できます:

<style scoped>
.a :deep(.b) {
  /* ... */
}
</style>
ログイン後にコピー

v-html を通じて作成された DOM コンテンツは、スタイリング効果をスコープすることはできませんが、深度セレクターを使用してスタイルを設定することはできます。

#3. スロット セレクターデフォルトでは、スコープ スタイルは

< に影響しません。 ;slot/>

レンダリングされたコンテンツは、親コンポーネントによって保持および渡されると見なされるためです。 :slotted 疑似クラスを使用して、スロットの内容をセレクターとして正確にターゲットにします: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">&lt;style scoped&gt; :slotted(div) { color: red; } &lt;/style&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

4. グローバル セレクタースタイル ルールの 1 つをグローバルに適用したい場合は、別の

<style>

を作成する代わりに、:global 疑似class.実装: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">&lt;style scoped&gt; :global(.red) { color: red; } &lt;/style&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

5. ローカル スタイルとグローバル スタイルの混合ローカル スタイルとグローバル スタイルの両方を使用することもできます。同じコンポーネント内のスタイル スコープ付きスタイルとスコープなしスタイルが含まれます:

<style>
/* global styles */
</style>
 
<style scoped>
/* local styles */
</style>
ログイン後にコピー

6. CSS モジュールのサポート

< ;style module>

タグは CSS モジュール にコンパイルされ、生成された CSS クラス キーはコンポーネント 1 に公開されます。デフォルトは

です。 $style

オブジェクト コンポーネントに公開されます; <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">&lt;template&gt; &lt;p :class=&quot;$style.red&quot;&gt; This should be red &lt;/p&gt; &lt;/template&gt; &lt;style module&gt; .red { color: red; } &lt;/style&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>2. 挿入されたモジュール名

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

7 をカスタマイズできます。 setup 挿入されたクラスは、

useCssModule

を通じて setup() および <script setup> で使用できます。 API: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">&lt;script setup&gt; import { useCssModule } from &amp;#39;vue&amp;#39; // 默认, 返回 &lt;style module&gt; 中的类 const defaultStyle = useCssModule() // 命名, 返回 &lt;style module=&quot;classes&quot;&gt; 中的类 const classesStyle = useCssModule(&amp;#39;classes&amp;#39;) &lt;/script&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>

##8. 動的 CSS<style>

タグ単一のファイル コンポーネントを渡すことができます

v -bind この CSS 関数は、CSS 値を動的コンポーネントの状態に関連付けます:

<script setup>
const theme = {
  color: &#39;red&#39;
}
</script>
 
<template>
  <p>hello</p>
</template>
 
<style scoped>
p {
  color: v-bind(&#39;theme.color&#39;);
}
</style>
ログイン後にコピー
(終了)

(学習ビデオ共有: Web フロントエンド開発基本プログラミング ビデオ)

以上がVue3 風の新機能について話しましょう(概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート