2017-06-26 21 views
1

Vue.jsを使用すると、グローバルなjavascriptスコープからインスタンス化されたVue.jsコンポーネントオブジェクトにアクセスできますか?または、Vueの内部構造は、オブジェクトにアクセスできないような方法でオブジェクトをインスタンス化しますか?グローバルスコープから定義されたVueコンポーネントへのアクセス

即ちI成分

Vue.component('component-name', { 
    /*...*/ 
}); 

を定義した後、タグがコンポーネント

<component-name> 
    /* can user templates with component objects vars {{foo}} 
</component-name> 

ヴューのテンプレートレンダリングコードのJavaScriptオブジェクトにアクセスし、最終的に、であることを使用するコードを有します。インスタンス化されたVueコンポーネントオブジェクトをコードで見ることができる方法はありますか?しかし、私は可能IITSは、コード、そして何その構文は次のとおりです経由でこれらのオブジェクトにアクセスするかどうかを知るためにLKEだろう(と私のクロム -

var theComponent = getInstantiatedComponent('component-name'); 

私はVue.jsクロームデバッガの承知しているような何かプラグインのスキルが弱すぎて、デバッガプラグインで行っていることを突き止めることができません)。

+1

あなたは何をお探しですか?ほとんどのライフサイクルイベントでは、 'this'を調べることができ、コンポーネントそのものが表示されます。 – Bert

+0

@BertEvansご注意いただきありがとうございます!私の状況が助けてくれるなら、私は開発者向けのツールを作っています。私は、私が探していると言っているもの以外のものを探しているわけではありません。グローバルなjavascriptスコープからインスタンス化されたコンポーネントオブジェクトにアクセスする方法です。 –

+1

グローバルスコープからは、Vueコンストラクタ( 'const app = new Vue(...)')の結果を取得できます。 – Bert

答えて

1

Vue Dev Toolsは、Vueのルートレベルのインスタンスを見つけるためにDOMをスキャンしているようです。

スキャン機能hereを参照してください。基本的には、ページ上の要素を調べて、属性が__vue__の要素を探します。そこから、それが根本的なインスタンスかどうかを決定するための2つの決定が行われます。

ルートを取得したら、コンポーネントのインスタンスを見つけるために、そのプロパティ(たとえば、$childrenなど)をトラバースできる必要があります。

関連する問題