ホームページ ウェブフロントエンド jsチュートリアル Vue のロード順序の例についてのディスカッション

Vue のロード順序の例についてのディスカッション

Jan 22, 2018 am 09:53 AM
話し合う 注文

この記事では主に Vue のロード順序に関する議論を紹介し、ロード順序の詳細と、すべてのサブコンポーネントがロードされているかどうかを判断する方法を紹介します。編集者がとても良いと思ったので、参考として共有したいと思います。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

Vuejs バージョン 1.0 では、親子コンポーネントが連携する場合、そのライフサイクル実行には次の特徴があります:

1. 作成される順序は常に親から子の順序になります

作成されるライフサイクル関数は常にその順序になります親から子へ 順番に実行されますが、兄弟はこの順序に厳密に従うわけではなく、非同期関数を使用しているだけでなく、親コンポーネント内での子コンポーネントの挿入順序もランダムであると推定されます。特別なルールはありません。子コンポーネントの参照順序は次のとおりであるとします。

<p class="container">
 <child-c1 v-ref:child1></child-c1>
 <child-c2 v-ref:child2></child-c2>
</p>
ログイン後にコピー

$children 参照を使用してすべての子コンポーネントを取得する場合、次のように、「child-c1」が常に最初の位置にあるとは限りません。混乱

私の推測によると、親コンポーネントと子コンポーネントの準備完了順序は、コンポーネントが完全にロードされるように、最初に子、次に親になるはずですが、実際の例から判断すると、ready には何もありません。親コンポーネントが最初にロードされる場合もあるため、プログラミングの実践では、それらのロード順序に依存しないでください。

3. 結論

実際には、コンポーネントが順番にロードされるようにする必要がある場合、コンポーネントのライフオーダーや親コンポーネントと子コンポーネントの準備完了ライフサイクルに依存してはなりません。


すべてのサブコンポーネントがロードされたことを判断する方法

親子コンポーネントを一緒に使用する場合、特に構成情報が業務情報と分離されている場合、すべてのサブコンポーネントがロードされた後に親コンポーネントを実行する必要があることがよくあります。

 // 大多数时候判断会失败
 if(this.$children[0] === this.$refs.child1) {
  // 这里的代码很可能得不到执行机会
 }
ログイン後にコピー

上の例では、サブコンポーネントの構成情報を結合する必要があるため、すべてのサブコンポーネントがロードされた場合にのみ、結合された構成情報が正確になります。完了。

そのため、マウントされたイベント (1.0 の ready イベント) を直接使用すると、間違いなく間違った結果が得られます。この問題を解決するには、次のデータ構造とメソッドを作成するとよいでしょう:

 <jq-grid :url="url" col-size="5" :sub-grid="true" ref="accountGrid" :on-ready="initGrid" :query="queryParams">
 <jq-col label="账号" name="username" width="75" :sortable="true"></jq-col>
 <jq-col label="用户名称" name="remarkName" width="75" :sortable="true"></jq-col>
 <jq-col label="创建时间" name="createTime" width="90">
 </jq-col>
</jq-grid>
ログイン後にコピー

設定項目 "colSize" サブコンポーネントによって呼び出されるメソッド "addColModel" をチェックすることで、すべてのサブコンポーネントがロードされる瞬間を判断できます (この時点で親コンポーネントがロードされる場合とロードされない場合があります)。これにより、必要な処理が実行されます。構成情報のソート操作。

しかし、実際のアプリケーションでは、サブコンポーネントの数が多い場合、ロード順序が設定と一致していることを確認したい場合、別の現象が発生することがわかりました。最新の設定内容は次のようになります:

props : {
 colSize : {
  type : Number,
  default : 1
 }
}

data () {
 return {
  // 用于获取所有的子组件配置信息
  colModel : [],
  readySize : 0
 }
},

methods : {
 /**
  * 由子组件在加载完成时调用
  */
 addColModel () {
   this.readySize ++
   // 检查进度是否设置的colSize一致
   if(this.readySize == this.colSize) {
   // 这时候所有的子组件已加载完成
   } 
 }
}
ログイン後にコピー

このような処理の後、ロードされた後にすべてのサブコンポーネントを次のように並べ替えることができます:

<jq-grid :url="url" col-size="8" :sub-grid="true" ref="hostGrid" :on-ready="initGrid" :query="queryParams">
 <jq-col order="1" label="名称" name="hostName" width="75" :sortable="true" ></jq-col>
 <jq-col order="2" label="主机型号" name="model" width="60" :sortable="true"></jq-col>
 <jq-col order="3" label="生产厂商" name="vendor" width="60" :sortable="true"></jq-col>
</jqgrid>
ログイン後にコピー

結論

By補助変数とメソッドを手動で追加すると、統合操作を実行するためにサブコンポーネントがロードされる瞬間を取得できます。

関連する推奨事項:


高パフォーマンスJavaScriptの読み込み順序と実行原理の詳細な説明

CSSの読み込みと読み込み順序の簡単な分析

html、cssおよびjsファイルの読み込み順序と実行

以上がVue のロード順序の例についてのディスカッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Python での SVM の例 Python での SVM の例 Jun 11, 2023 pm 08:42 PM

Python のサポート ベクター マシン (SVM) は、分類および回帰の問題を解決するために使用できる強力な教師あり学習アルゴリズムです。 SVM は、高次元データや非線形問題を処理する場合に優れたパフォーマンスを発揮し、データ マイニング、画像分類、テキスト分類、バイオインフォマティクスなどの分野で広く使用されています。この記事では、Python で分類に SVM を使用する例を紹介します。 scikit-learn ライブラリの SVM モデルを使用します。

VUE3 入門例: 簡単なビデオ プレーヤーの作成 VUE3 入門例: 簡単なビデオ プレーヤーの作成 Jun 15, 2023 pm 09:42 PM

新世代のフロントエンド フレームワークが出現し続ける中、VUE3 は高速で柔軟、そして使いやすいフロントエンド フレームワークとして愛されています。次に、VUE3 の基本を学び、簡単なビデオ プレーヤーを作成しましょう。 1. VUE3 をインストールする まず、VUE3 をローカルにインストールする必要があります。コマンド ライン ツールを開き、次のコマンドを実行します。 npminstallvue@next 次に、新しい HTML ファイルを作成し、VUE3 を導入します。 &lt;!doctypehtml&gt;

詳細: Django フレームワークとは何ですか? 詳細: Django フレームワークとは何ですか? Jan 19, 2024 am 09:23 AM

Django フレームワークは、Web アプリケーションを作成するためのシンプルかつ強力な方法を提供する Web アプリケーション用の Python フレームワークです。実際、Django は最も人気のある Python Web 開発フレームワークの 1 つとなり、Instagram や Pinterest を含む多くの企業にとって最初の選択肢となっています。この記事では、基本概念や重要なコンポーネント、具体的なコード例など、Django フレームワークとは何かについて詳しく説明します。 Django の基本概念Djan

Golang でのポインター変換のベスト プラクティスの例を学ぶ Golang でのポインター変換のベスト プラクティスの例を学ぶ Feb 24, 2024 pm 03:51 PM

Golang は、さまざまなアプリケーションやサービスの開発に使用できる強力で効率的なプログラミング言語です。 Golang では、ポインタは非常に重要な概念であり、データをより柔軟かつ効率的に操作するのに役立ちます。ポインタ変換とは、異なる型間のポインタ操作のプロセスを指します。この記事では、具体的な例を使用して、Golang におけるポインタ変換のベスト プラクティスを学びます。 1. 基本概念 Golang では、各変数にはアドレスがあり、アドレスはメモリ内の変数の位置です。

Gin フレームワークでの検証コードの使用例 Gin フレームワークでの検証コードの使用例 Jun 23, 2023 am 08:10 AM

インターネットの普及に伴い、ログイン、登録、パスワードの取得などの操作に確認コードが必要なプロセスになりました。 Ginフレームワークでは、認証コード機能の実装が非常に簡単になりました。この記事では、サードパーティのライブラリを使用して、Gin フレームワークに検証コード機能を実装する方法を紹介し、読者の参考となるサンプル コードを提供します。 1. 依存ライブラリをインストールする 検証コードを使用する前に、サードパーティ ライブラリ goCaptcha をインストールする必要があります。 goCaptcha をインストールするには、goget コマンド $goget-agithub を使用できます。

Oracle インスタンスの数とデータベースのパフォーマンスの関係 Oracle インスタンスの数とデータベースのパフォーマンスの関係 Mar 08, 2024 am 09:27 AM

Oracle インスタンスの数とデータベースのパフォーマンスの関係 Oracle データベースは、業界でよく知られたリレーショナル データベース管理システムの 1 つであり、エンタープライズ レベルのデータ ストレージと管理で広く使用されています。 Oracle データベースでは、インスタンスは非常に重要な概念です。インスタンスとは、メモリー内のOracleデータベースの実行環境を指します。各インスタンスには独立したメモリー構造とバックグラウンド・プロセスがあり、ユーザー・リクエストの処理とデータベース操作の管理に使用されます。インスタンスの数は、Oracle データベースのパフォーマンスと安定性に重要な影響を与えます。

PHP の簡単な Web クローラー開発例 PHP の簡単な Web クローラー開発例 Jun 13, 2023 pm 06:54 PM

インターネットの急速な発展に伴い、データは今日の情報化時代において最も重要なリソースの 1 つになりました。 Webクローラは、ネットワークデータを自動的に取得・処理する技術として、ますます注目と応用が進んでいます。この記事では、PHPを使って簡単なWebクローラーを開発し、ネットワークデータを自動取得する機能を実現する方法を紹介します。 1. Web クローラーの概要 Web クローラーとは、ネットワーク リソースを自動的に取得して処理する技術であり、主な動作プロセスはブラウザーの動作をシミュレートし、指定された URL アドレスに自動的にアクセスし、すべての情報を抽出することです。

Django フレームワークをすぐに始めましょう: 詳細なチュートリアルと例 Django フレームワークをすぐに始めましょう: 詳細なチュートリアルと例 Sep 28, 2023 pm 03:05 PM

Django フレームワークをすぐに使い始めましょう: 詳細なチュートリアルと例 はじめに: Django は、MTV (Model-Template-View) アーキテクチャによって駆動される効率的で柔軟な Python Web 開発フレームワークです。シンプルで明確な構文と強力な機能を備えており、開発者が信頼性が高く保守が容易な Web アプリケーションを迅速に構築するのに役立ちます。この記事では、Django の使用法を詳しく紹介し、読者が Django フレームワークをすぐに使い始めるのに役立つ具体的な例とコード サンプルを提供します。 1.Dをインストールする

See all articles