2017-09-20 12 views
2

更新されていない外部オブジェクトを参照している計算されたプロパティ - playerIdがあります。例えばvue.js内の外部変数を追跡しない計算されたプロパティ

:私はクリックイベントにこの呼び出しを実行した場合

var player = require('players'); 
computed: { 
    playerId: function() { 
     return player.id 
    } 
} 

それが正しいIDを出力します。しかし、これが更新されると、それ自身で計算されても更新されません。これをどのように機能させるには?それとも私はこれについて間違っているのですか?

+0

データプロパティにオブジェクトを作成し、私はこれを行う場合は計算プロパティ – divine

+0

@divineからオブジェクトを返します - どのように私はビューを更新するのですか?新しい値をレンダリングするために手動で何かを呼び出す必要があるのですか、またはビューを自動的に更新する必要がありますか? – KingKongFrog

+0

クリック時に計算されたプロパティを呼び出す必要があります – divine

答えて

2

Vue.jsのComputed Propertyは、反応がなく、データに反応しません。たとえば、Date.now()は反応性の依存関係がないため、以下のコードはではなく、は毎回更新されます。この計算値の結果はキャッシュされ、常に最初に返されたものと同じ値を返します。

computed: { 
    now: function() { 
    return Date.now() 
    } 
} 

次に、外部オブジェクトを反応させる方法を知りたいと思うかもしれません。要点は、オブジェクトをdataセクションに置く方が、Vueの内部ウォッチャーを使ってオブジェクトの変更を追跡する方がよいことです。計算されたプロパティがdataを参照するような1つの反応性の依存関係を持っていたり、methodを呼び出す場合は、依存関係が更新され、計算されたプロパティから返されるコンテンツも更新されるたびに通知されます。

https://vuejs.org/v2/guide/computed.html

関連する問題