2016-05-19 11 views
2

私はvue-routerとの間でデータを渡すようにしています。Vuejs + vue-router、http投稿などのビュー間でデータを渡す

//View1.vue 
route: { 
    data: function (transition) { 
    transition.next({ 
     message: "this is it!!" 
    }); 
    } 
} 

私はクリックアクションボタンで次のwiewを呼び出す:

//View1.vue 
methods:{ 
    showResult: function(){ 
    this.$router.go('/View2'); 
    } 
} 

が、データは次のビューに充填されていません。

//View2.vue 
<template> 
    <p>Message: {{ message }}</p> 
</template> 

は、誰かが私が間違って何を知っていますvue-routerの使い方は?私はこのためのサービスを通過する必要はないと思いますよね? jsfiddle(またはjsbin、など)に

の作業例は歓迎されている:D

答えて

2

VIEW2は、あなたが小道具使用して、それを渡すことができ、子コンポーネントの場合:あなたはデータを設定した場合、代わりに

//View1.vue 
<view2-component :passedData='message'></view2-component> 

が、私は信じていますそのオブジェクトはすべてのvueのインスタンス間で共有されているので、View1の$ routeオブジェクトでは、アプリケーション全体で利用できると思います。

//View1.vue 
this.$router.myProps.message = message 

おそらく、データを共有するより良い方法は、POJOの普通の古いJavaScriptオブジェクトを使用し、両方のビューにバインドすることです。これを行うには、通常、共有状態オブジェクトが必要です.POJOよりも少し複雑ですが、これにVuexを使用することができます。 この:

+0

しかし、私はこれを記憶してもよいがPOJO ...(?親VUE)、これは動作しませんので、私は... :) –

+0

私のコード内の別のレイヤーを追加するvuejsには余りにも新たなんだを共有しました。 $ route.myProps.message = message –

+0

申し訳ありませんが、これはうまく動作します:$ router.myProps.message = message –

関連する問題