2017-06-26 6 views
0

私はVueチュートリアルHereで遊んでいて、シンプルなJquery .html関数を追加しました。しかし、それは動作していません。 jQueryプラグインを追加しましたが、コンソールにエラーはありません。私は、コンソールに「負荷でナビ」を見ることができますJquery and Vue、.html()が機能していません

function loadMainNavigation() { 
    $('#mainMenu').html("ASERFDASRF"); 
    console.log("In load Nav"); 
} 

:このような

<template> 
<div id="app"> 
<div id="mainMenu"> Hello </div> 
</div> 
</template> 

<script> 
import * as start from './assets/scripts/start.js' 
export default { 
    name: 'app', 
    created: start.loadMainNavigation() 
} 
</script> 

と私のloadMainNavigation機能:私はこのように定義された私の「アプリケーション」コンポーネントを持っています。エラーはありませんが、DIVには元の "Hello"が残っています - 何が間違っていますか?

+2

このようにすると、Vueのメリットが失われてしまいます。 jQueryをここに組み込む理由はありません。 – ceejayoz

+0

準備が整いました。 $(document).ready(){$( '#mainMenu').html( "ASERFDASRF"); } – Ali

答えて

3

コンテンツが変更されないのは、機能を実行している時点で、the component has not yet been rendered to the DOMです。 DOMはmountedイベントまでレンダリングされません。

しかし、それ以外では、jQueryとVueの統合時には注意するか、まったく避ける必要があります。これを行う慣用的なビューの方法は、このようなものになります。

console.clear() 
 

 
new Vue({ 
 
    el: "#app", 
 
    data:{ 
 
    message: "Hello" 
 
    }, 
 
    created(){ 
 
    this.message = "ASERFDASRF" 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script> 
 
<div id="app"> 
 
    <div id="mainMenu"> {{message}} </div> 
 
</div>

(あなたがたとえば、何のVueの対応はありませんそのためのjQueryプラグインを使用する場合)あなたはjQueryとVueのを混ぜるかもしれないいくつかの時間がありますが、一般的に、そこにありますほとんどいつもあなたが望むことをする方法なしで jQuery。

+0

作成したものと、作成したものとの違いは何ですか?彼らは同じものではありませんか?はい、あなたのものは関数ですが、私の関数は関数を呼び出しますが、呼び出されたときにそれらが異なるのは何ですか? – mmaceachran

+1

@mmaceachran主な違いは、私の例で 'created'がデータプロパティを設定していることです。後で、Vueがコンポーネントをレンダリングするとき、Vueはそのプロパティ表示をDOMで使用します。次に、このコードの 'created:start.loadMainNavigation()'は、 'created'ハンドラを' unModified'である 'loadMainNavigation' *の結果に設定します。 *コードを 'mounted:start.loadMainNavigation'に変更した場合、実際の関数にハンドラを設定し、その時点でDOMが存在するため、コードがおそらく動作するでしょう。 – Bert

+0

@mmaceachran Vueがコンポーネントをレンダリングすることを決定するまでは、あなたのコンポーネントのための 'template'で定義したものがDOMに存在しない*ことは、たぶん直感的ではありません。テンプレートは、コンポーネントに含まれるデータに基づいてDOMに書き込むために使用できるレンダリング関数に変換されます。 – Bert

関連する問題