ホームページ > ウェブフロントエンド > Vue.js > Vue3 でのスタイルの浸透: deep() が無効です、それを解決する方法

Vue3 でのスタイルの浸透: deep() が無効です、それを解決する方法

WBOY
リリース: 2023-05-13 08:40:05
転載
2332 人が閲覧しました

: deep() の使用シナリオ:

スコープ付き属性が現在のコンポーネントのスタイル ノードに追加された場合、現在のコンポーネントのスタイルはそのサブコンポーネントには影響しません。特定のスタイルを子コンポーネントに適用したい場合は、:deep() を使用する必要があります。

もともとこれは難しくないと思っていたので、それを検証するためにケースを書きました。次に、:deep() で定義されたスタイルが子コンポーネントでは機能しないという問題が発生します。
エラーを探し始め、コロンや括弧を含む文法形式をチェックしました。文法形式に問題はなく、コンソールはエラーを報告しませんでした。しかし、deep() 形式のスタイルが無効でした。サブコンポーネント内。
幸いなことに、:deep() 形式が機能する例がありました。2 つのファイル内の親コンポーネントとサブコンポーネントを 1 つずつ比較するしかありませんでした。多くの時間を費やした後、最終的に見つけました。問題。

以前練習していたとき、Vue2.X では要素がルート ノードに存在する必要がありましたが、Vue3 では

が削除され、エラーは報告されませんでした。

Vue3 でのスタイルの浸透: deep() が無効です、それを解決する方法

しかし、問題はこのルート ノードにあります。App.vue にそのようなルート ノードがない場合、deep() は機能しません。ルートを追加します。 node. の場合、:deep() スタイルが有効になります。
ああ、このルートノードに騙されたような気がします。

1. 親コンポーネント App.vue のコード

<style lang="less" scoped>
  :deep(.title3){
    background-color:antiquewhite;
  }
</style>
ログイン後にコピー

2. 子コンポーネントのコード

<template>
  <h4 class="title3">受父组件影响的内容</h4>
</template>
ログイン後にコピー

以上がVue3 でのスタイルの浸透: deep() が無効です、それを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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