ホームページ > 記事 > ウェブフロントエンド > 監視リスナー、計算されたプロパティ、Vue-cli、および Vue のコンポーネントの簡単な分析
この記事では、Vue の学習を継続し、Vue のウォッチ リスナー、計算プロパティ、Vue-cli、および Vue コンポーネントについて詳しく紹介します。入門に必要な知識となります。みんな!
ウォッチ リスナーを使用すると、開発者はデータの変更を監視し、データの変更に対して 特定の操作を実行できます。 (学習ビデオ共有: vue ビデオ チュートリアル )
構文形式は次のとおりです。axios を使用して
Ajax リクエストを開始し、名前が使用可能かどうかを確認します。現在入力されているユーザー名は利用可能です:
watch: { // 监听 username 值的变化 async username( newVal ) { if (newVal === '') return // 使用 axios 发起请求,判断用户名是否可用 const { data: res } = await axios.get('https://www.escook.cn/api/finduser/' + newVal) console.log(res) } }
watch リスナーを
すぐに呼び出す場合は、immediate オプションを使用する必要があります。
watch: { username: { // handler 是固定写法,表示当 username 的值变化时,自动调用 handler 处理函数 handler: async function ( newVal ) { if (newVal === '') return const { data: res } = await axios.get('https://www.escook.cn/api/finduser/' + newVal) console.log(res) }, // 表示页面初次渲染好之后,就立即触发当前的 watch 侦听器 immediate: true } }
If watch がリッスンしている場合オブジェクトのプロパティ値が変更された場合、それを監視することはできません。
現時点では、deep オプションを使用する必要があります。
オブジェクト内の 1 つのプロパティへの変更のみを監視したい は次のように定義できますwatch リスナー:
への一連の操作 を経て、最終的に 属性値 が得られます。
2️⃣この動的に計算された属性値は、テンプレート構造またはメソッド メソッドで使用できます。
コードのデモは次のとおりです:本質はプロパティです;
2️⃣ 計算プロパティは計算結果をキャッシュします 、計算されたプロパティのみ 依存データが変更されると、操作が再計算されます;
2️⃣ vue-cli 公式 Web サイトからの引用: プログラマーは、Webpack の構成の問題を心配して何日も過ごすのではなく、アプリケーションの作成に集中できます;
3️⃣ 中国語の公式 Web サイト:
https:// cli.vuejs.org/zh/(2) インストールと使用
npm install -g @vue/cli2️⃣ バージョンが正しいかどうかを確認してください?
vue --version3️⃣ ターミナルで次のコマンドを実行して、指定した名前でプロジェクトを作成します:
vue create プロジェクトの名前
App.vue
は、レンダリングされるテンプレート構造を記述するために使用されます。index.html
は、EL 領域を予約する必要があります。main.js
は、App.vue
を index.html
によって予約された領域にレンダリングします; コンポーネント開発とは、カプセル化の考え方に基づいて、カプセル化することを指します。プロジェクトの開発とメンテナンスを容易にするコンポーネントとしてページ上の再利用可能な UI 構造。
1️⃣ vue は、コンポーネント開発を サポートするフロントエンド フレームワークです。;
2️⃣ vue では、コンポーネントのサフィックス名が .vue
であると規定されています。以前私が接触した App.vue ファイルは、本質的には vue コンポーネントです;
それぞれ。 vue
コンポーネントは、次の 3 つの部分で構成されます。
template
→ コンポーネントのテンプレート構造
# script
→ コンポーネントの JavaScript 動作
style
→ コンポーネントの スタイル
ここで、各コンポーネントにはテンプレート テンプレート構造が含まれている必要があります 一方、スクリプトの動作とスタイルはオプションのコンポーネントです。
vue では次のように規定されています。各コンポーネントに対応するテンプレート構造は、d477f9ce7bf77f53fbcf36bec1b69b7a
ノードで定義する必要があります。
?注意喚起?:
3f1c4e4b6b16bbbd69b2ee476dc4f83a ノード内のコンポーネントの JavaScript ビジネス ロジック
をカプセル化できます。
ノードの基本構造は次のとおりです:
2️⃣ vue 規則:
内の # は関数 でなければなりません。
はデータ オブジェクト を直接指すことはできません。 したがって、コンポーネントでデータ ノードを定義するとき、次の方法は
:
3.3 style
c9ccee2e6ea535a969eb3f532ad9fe89 ノード
Write できます。現在のコンポーネントの UI 構造を美しくするためのスタイル。
3f1c4e4b6b16bbbd69b2ee476dc4f83a
# を c9ccee2e6ea535a969eb3f532ad9fe89# に追加します。 ## タグ #lang="less"
less 構文を使用してコンポーネントのスタイルを記述することができます:
( 4) コンポーネント間の親と子の関係
例:コンポーネント A の コンポーネント ノードの下に、コンポーネント F が登録されます。この場合、コンポーネント F はコンポーネント A でのみ使用でき、コンポーネント C では使用できません。
2️⃣ vue プロジェクトの main.js エントリ ファイルでは、
Vue.component()
コードのデモは次のとおりです:
(5) コンポーネントの props
1️⃣ vue は次のように規定しています: コンポーネントにカプセル化されたカスタム プロパティは 読み取り専用、プログラマーは値を直接変更できません 2️⃣ props の値を変更したい場合は、props #5.3 props の type value type 5.4 props の必須項目 1️⃣ デフォルトでは、 は # で記述されます。 # #.vue コンポーネント内のスタイルはグローバルに有効になるため、 一意のindex.html に基づいています。ページ レンダリングの ; 6.1考え方: コンポーネント スタイルの競合の問題を解決する方法 特定のスタイルをサブコンポーネントに適用したい場合は、/deep/ Depth セレクターを使用できます。 !
構文は次のように示されます:
5.1 プロパティは読み取り専用です
小道具
の。それ以外の場合は、エラーが直接報告されます; の値を
data にダンプできます。なぜなら
data のデータは読み取りと書き込みの両方が可能です。
##5.2 props のデフォルト値カスタム プロパティを宣言する場合、
デフォルトのデフォルト値を使用してプロパティを定義できます# ####。サンプル コードは次のとおりです。
カスタム プロパティを宣言するときは、pass type 属性の値タイプ を定義します。サンプルコードは次のとおりです。
カスタム プロパティを宣言する場合、次のことができます。 pass 必須オプションは、属性を必須として設定し、ユーザーに属性の値を渡すように強制します。サンプルコードは以下のとおりです。 (6) コンポーネント間のスタイル競合問題
複数のコンポーネント間で スタイルの競合が発生しやすくなります。 2️⃣ コンポーネント間のスタイル競合の根本的な原因は次のとおりです:
単一ページ アプリケーションでは、すべてのコンポーネントの DOM 構造は 各コンポーネントのスタイルは、index.html ページ全体の DOM 要素に影響します
開発効率と開発エクスペリエンスを向上させるために、vue は ## を提供しますコンポーネント間のスタイルの競合を防ぐためのスタイル ノードの #scoped 属性:
6.3 /deep/ スタイルの浸透 スコープ付き属性が現在のコンポーネントのスタイル ノードに追加された場合、現在のコンポーネントのスタイルはそのサブコンポーネントには影響しません
。 Web フロントエンド開発、基本プログラミング ビデオ
)
以上が監視リスナー、計算されたプロパティ、Vue-cli、および Vue のコンポーネントの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。