ホームページ  >  記事  >  ウェブフロントエンド  >  vue.js_vue.jsで作成したメソッドの役割

vue.js_vue.jsで作成したメソッドの役割

亚连
亚连オリジナル
2018-05-28 10:56:451661ブラウズ

この記事ではvue.jsにおけるcreatedメソッドの役割とmountedとcreatedの違いを中心に紹介していますので、必要な方は参考にしてみてください

これはライフサイクルフック関数の一つで、この関数を呼び出した後に呼び出します。 vue インスタンスが生成されます。 vue インスタンスが生成された後、それを html 要素にバインドし、コンパイルしてドキュメントに挿入する必要があります。各ステージにはフック関数があり、開発者がさまざまなステージでさまざまなロジックを処理できるようになります。

通常、作成した関数内で ajax を呼び出して、ページの初期化に必要なデータを取得できます。

インスタンスのライフサイクル

各 Vue インスタンスは、作成される前に一連の初期化プロセスを経ます。たとえば、インスタンスはデータ オブザーバーを構成し、テンプレートをコンパイルし、インスタンスを DOM にマウントし、データが変更されたときに DOM を更新する必要があります。このプロセス中に、インスタンスはいくつかのライフサイクル フックも呼び出します。これにより、カスタム ロジックを実行する機会が得られます。たとえば、作成されたフックはインスタンスの作成後に呼び出されます:

var vm = new Vue({
data: {
a: 1
},
created: function () {
// `this` 指向 vm 实例
console.log('a is: ' + this.a)
}
})
// -> "a is: 1"

また、インスタンスのライフサイクルのさまざまな段階 (マウント、更新、破棄など) で呼び出される他のフックもいくつかあります。フックの this は、それを呼び出した Vue インスタンスを指します。 Vue.js に「コントローラー」という概念があるのか​​と疑問に思うユーザーもいるかもしれません。答えはいいえだ。コンポーネントのカスタム ロジックは、これらのフック間で分散できます。

ライフサイクル図

次の図は、インスタンスのライフサイクルを示しています。すぐにすべてを理解する必要はありませんが、後で役立ちます。


追加:

Vueライフサイクルでのマウントと作成の違い

1. ライフサイクルとは何ですか?

一般的な言葉で言えば、Vue のインスタンスまたはコンポーネントが作成から破棄まで通過する一連のプロセスです。厳密ではありませんが、基本的には理解できます。

一連の実践を通じて、遭遇したすべての問題を整理しました。今日は、作成されたものとマウントされたものの違いを記録します。

2. 作成されたものとマウントされたものの違いは何ですか?

公式の図は次のとおりです:

図から 2 つのノードを見てみましょう:

created: テンプレートが HTML にレンダリングされる前に呼び出されます。つまり、通常、いくつかの属性値が初期化され、その後ビューにレンダリングされます。

mounted: テンプレートが HTML にレンダリングされた後、通常は初期化ページが完了した後に呼び出され、HTML の DOM ノードでいくつかの必要な操作を実行します。

実際、この 2 つは通常、Created がより頻繁に使用され、mounted は通常、プラグイン chart.js の使用など、一部のプラグインまたはコンポーネントの使用中に操作されます。通常、このステップがあり、これをコンポーネントに書き込むと、作成されたチャートで一部の初期設定を実行できないことがわかります。次に進む前に、HTML がレンダリングされるまで待つ必要があります。例を見てみましょう (コンポーネントを使用)。 var ctx = document.getElementById(ID)

3. 例

<span style="font-size: 14px;">Vue.component("demo1",{ 
  data:function(){ 
   return { 
    name:"", 
    age:"", 
    city:"" 
   } 
  }, 
  template:"<ul><li id=&#39;name&#39;>{{name}}</li><li>{{age}}</li><li>{{city}}</li></ul>", 
  created:function(){ 
   this.name="唐浩益" 
   this.age = "12" 
   this.city ="杭州" 
   var x = document.getElementById("name")//第一个命令台错误 
   console.log(x.innerHTML); 
  }, 
  mounted:function(){ 
   var x = document.getElementById("name")/</span>/第二个命令台输出的结果<span style="font-size: 14px;"> 
   console.log(x.innerHTML); 
  } 
 }); 
 var vm = new Vue({ 
  el:"#example1" 
 })</span>

次のように出力が表示されます:

作成されたものに初期値が割り当てられている場合、すべてが正常にレンダリングされていることがわかります。

同時に、次のようにコンソールを見てください:

最初のものはエラーを報告していることがわかります。これは実際には ID が見つからず、getElementById(ID) が見つからなかったためです。理由は以下の通りです:

作成時にはビュー内のHTMLがレンダリングされていないため、この時点でHTMLのdomノードを直接操作すると確実に該当する要素を見つけることができません

そしてmountedではこの時点でhtmlがレンダリングされているのでdomノードを直接操作できるので結果「Tang Haoyi」が出力されます。

上記はマウントとマウンティングの違いを私なりにまとめたもので、感想を深めるために比較的簡単に書いておきます。

上記は私があなたのためにまとめたものです。

関連記事:

内部コンポーネントのカルーセル切り替え効果を実装するVueのサンプルコード

JavaScriptでの演算子のオーバーロードの詳細な説明

単純な動的なプログレスバー効果を実装するJavaScript

以上がvue.js_vue.jsで作成したメソッドの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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