Vue はコンポーネントのネストとコンポーネント スタイル管理をどのように実装しますか?
Vue.js は、データ駆動型で応答性の高い更新ビューを備えた軽量の JavaScript フレームワークです。 Vue.js の中核となる概念はコンポーネント化であり、ボタン、フォーム、モーダル ボックスなどのコンポーネントを自由に組み合わせたり、小さなコンポーネントに分割したりできます。 Vue.js のコンポーネントのネストとスタイル管理はコンポーネント開発において必須の知識ですが、この記事では Vue でコンポーネントのネストとスタイル管理を実装する方法について詳しく説明します。
コンポーネントのネスト
コンポーネントのネストとは、あるコンポーネントを別のコンポーネントの中に配置して親子コンポーネント関係を形成し、親コンポーネントを介して子コンポーネントにデータを渡すことを指します。また、子コンポーネントは親コンポーネントにデータを送信する コンポーネントはデータを渡してコンポーネント間の通信を実現します。 Vue.js は、親コンポーネントの中に子コンポーネントのテンプレートを導入するだけで、コンポーネントのネストを実装するのに非常に便利です。以下は簡単な例です:
<template> <div> <h1>父组件</h1> <child-component></child-component> </div> </template> <script> import childComponent from './childComponent.vue' export default { components: { 'child-component': childComponent } } </script>
上記のコードは親コンポーネントであり、import
を通じてサブコンポーネントを導入し、そのサブコンポーネントを components## に登録します。 #. 親コンポーネント内で子コンポーネントを使用します。コンポーネントのネストは、
を使用して、親コンポーネントに子コンポーネントのテンプレートを導入することで実現できます。
props と
$emit の 2 つの方法で実装されます。
props は、親コンポーネントが子コンポーネントにデータを渡し、子コンポーネントが
props を受け取ることで親コンポーネントから渡されたデータを取得することを意味します。以下は、単純な
props の例です。
<template> <div> <h2>子组件</h2> <p>父组件的名字是:{{ name }}</p> </div> </template> <script> export default { props: ['name'] } </script>
name から
props 属性を定義するサブコンポーネントです。親コンポーネントが子コンポーネントにデータを渡すと、そのデータは
name 属性を通じて渡されます。子コンポーネントのテンプレートでは、親コンポーネントから
{{ name }} を通じて渡されたデータを取得できます。
v-bind ディレクティブを通じてデータを渡すことができます。以下に示すように:
<template> <div> <h1>父组件</h1> <child-component :name="fatherName"></child-component> </div> </template> <script> import childComponent from './childComponent.vue' export default { data () { return { fatherName: '张三' } }, components: { 'child-component': childComponent } } </script>
fatherName という名前の変数を定義します。子コンポーネントでは、
props を介して
fatherName を受け取ります。
scoped 属性を使用してコンポーネント内のスタイルを定義することを指します。例:
<template> <div class="component"> <h2 class="title">标题</h2> </div> </template> <style scoped> .component { background-color: #f5f5f5; padding: 20px; border-radius: 5px; } .title { color: #333; font-size: 18px; margin-bottom: 10px; } </style>
scoped 属性をスタイル タグに追加しました。つまり、
stylescoped です。この方法で定義されたスタイルは、現在のコンポーネントに対してのみ有効であり、他のコンポーネントやグローバル スタイルには影響しません。
/deep/ または
>>> を追加する必要があります。
上記のコードでは、
のスタイル定義と .sub-title# のスタイルで
/deep/ .sub-component を使用しています。
##>>> は定義で使用されます。これにより、スコープ スタイルで深さセレクターを定義できるようになります。
CSS モジュール
css-loader
とstyle-loader をインストールし、Webpack 設定ファイルに CSS モジュールに関する設定を追加する必要があります:
<template> <div class="component"> <h2 class="title">标题</h2> <div class="sub-component"> <span class="sub-title">子标题</span> </div> </div> </template> <style scoped> .component { /deep/ .sub-component { background-color: #f1f1f1; } >>> .sub-title { color: red; } } </style>
上記のコードでは、
modules を css-loader の設定に追加し、CSS モジュールが有効であることを示しています。
cssModules 属性が
vue-loader の構成に追加され、CSS モジュールが Vue.js の単一ファイル コンポーネントで有効であることを示します。
単一ファイル コンポーネントでは、
scoped
// webpack.conf.js module.exports = { // ... module: { rules: [ { test: /.css$/, loader: 'style-loader!css-loader?modules' }, { test: /.vue$/, loader: 'vue-loader', options: { cssModules: { localIdentName: '[name]-[hash]', camelCase: true } } } ] } // ... }
上記のコードでは、
module 属性を style タグに追加し、これが CSS モジュールであることを示しています。 CSS では、スコープ付きスタイルやディープ セレクターを使用せずに、従来の方法でスタイルを定義できます。
CSS モジュールをコンポーネントに導入するときは、以下に示すように、
$style
<template> <div class="component"> <h2 class="title">标题</h2> </div> </template> <style module> .component { background-color: #f5f5f5; padding: 20px; border-radius: 5px; } .title { color: #333; font-size: 18px; margin-bottom: 10px; } </style>
上記のコードでは、
を使用します。 $style.title は、このコンポーネントで定義されている title スタイルを参照します。
概要: Vue.js では、コンポーネント スタイルを管理する 2 つの方法、スコープ スタイルと CSS モジュールを提供します。スコープ付きスタイルは単純なスタイルに適していますが、CSS モジュールは CSS をモジュール化して各コンポーネントのスタイルが独立しているようにするコンポーネント化されたアプリケーションに適しています。
以上がVue はコンポーネントのネストとコンポーネント スタイル管理をどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

Vue.jsでは、Lazy Loadingを使用すると、コンポーネントまたはリソースを必要に応じて動的にロードすることができ、初期ページの読み込み時間を短縮し、パフォーマンスを改善できます。特定の実装方法には、&lt; Keep-Alive&gt;および&lt;コンポーネントは&gt;コンポーネント。怠zyなロードは、FOUC(スプラッシュ画面)の問題を引き起こす可能性があり、不必要なパフォーマンスのオーバーヘッドを避けるために怠zyなロードが必要なコンポーネントにのみ使用する必要があることに注意してください。

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。
