2016-12-09 3 views
2

docsによると、Vueオブジェクトのコンストラクタは次のように管理されます。コンポーネントがVueで作成されたときに関数を実装する方法は?

var vm = new Vue({ 
    created: function() { console.log("I'm created!"); } 
}); 

しかし、私はVueコンポーネントが作成されたときに対応する方法を理解できません。私は以下を試しましたが、コンソールに何も印刷されません。

export default { 
    created: function() { console.log("Component created!"); } 
} 

レンダリング中のコンポーネントを購読/受信することはできますか?私はそのイベントに反応したいと思います。データをダウンロードして店に入れておくと、コンポーネントが持っているテーブルがその情報を表示するようになります。

+0

はWebPACKのプロジェクトの一環として.vueファイルの中にあなたの輸出デフォルトのですか?ある時点で、.vueファイルで作成されたコンポーネントをインポートするrootのvueインスタンスを作るための呼び出しである必要があります。 – vbranden

+0

@vbrandenあなたの質問にお答えします - 輸出は.vueファイルの中にあり、私はwebpackでバンドル/運営を管理しています。他の部分は、私は打ち負かされませんでした。説明できますか? –

+0

多分私はあなたの問題を理解していないよ。ルートVueインスタンスと、作成されたフック内にconsole.logを持つコンポーネントがあります。プロジェクトのある時点で、そのコンポーネントをインポートして使用していますか?もしそうなら、コンソールログが表示されます。 – vbranden

答えて

4

私のアプリケーションでは、コンポーネントがマウントされると、mountedフックを使用してAjaxデータをロードする傾向があります。私のアプリから

例コード:

Vue.component('book-class', { 
    template: '#booking-template', 
    props: ['teacherid'], 
    data: function() { 
     return{ 
      // few data items returned here.. 
      message: '' 
     } 
    }, 
    methods: { 
     // Few methods here.. 
    }, 
    computed: { 
     // few computed methods here... 
    }, 
    mounted: function() { 


     var that = this; 
     $.ajax({ 
      type: 'GET', 
      url: '/classinfo/' + this.teacherid, 
      success: function (data) { 
       console.log(JSON.stringify(data)); 

      } 
     }) 
    } 
}); 


new Vue({ 
    el: '#mainapp', 
    data: { 
     message: 'some message here..' 
    } 
}); 

しかし、私はまた、作成し使用することができます()それは同様のライフサイクルであるだけでなく、フック。 Vue2で

次のライフサイクルフックを持っている:

enter image description here

+0

これは、Vueメインコンポーネントの作成/引っ掛けにのみ適用されます。私はコンポーネント(任意のコンポーネント、一部または子)を作成/インポートするときに、何かを行う方法を探しています。コードでの努力のために+1。また、画像を削除してリンクするだけです。それはすごく助けになりますが、あまりにも長いです。 –

関連する問題