2016-12-27 2 views
5

Vuexを使用してタイムトラベル機能を実現するにはどうすればよいですか?私は以前の状態に戻って、何かを元に戻したい。Vuexを使って州の木を旅行(ロールバック)する方法は?

それは可能ですか?

これを達成する方法はありますか?

はちょうどあなたが唯一のあなたはそれを元に戻す可能なようにしたい部分を選択することができ、あなたの店にprevStateを追加し、あなた自身でそれを実装store.rollback(1)

答えて

4

のようなものを期待していました。

const state = { 
    count: 0, 
    prevCount: null 
} 

変異:

はここだけで1つの履歴レコードをサポートする最も単純な例であり、

const INCREMENT = state => { 
    state.prevCount = state.count 
    state.count += 1 
} 

const UNDO = state => { 
    if (state.prevCount !== null) { 
    state.count = state.prevCount 
    state.prevCount = null 
    } 
} 

あなたはより多くの歴史を持っている必要がある場合は、ただ配列に入れてください

const state = { 
    count: 0, 
    countHistory: [] 
} 

、その後、あなたは自動的にすべての歴史を保存したい場合には、レコードの

別の解決策は、plugin(ミドルウェア)でのアンドゥ/保存することstate.countHistory.pop()state.countHistory.push(xx)を使用することができます。

+0

私はそれがすべきだと思います。より多くのことを望んでいた。私は以前のペイロードを格納するミドルウェアをより一般的なものに使うことができたと思います。助けてくれてありがとう – cassioscabral

関連する問題