私はVue.jsを使って1ページのアプリケーションを構築しています。比較的シンプルなアプリで、拡張された意見のついたスプレッドシートに似ています。私はvue-router
を使用してアプリのさまざまなビューを扱いますが、新しいデータの入力に使用されるものもあれば、データの計算を実行するものもありますが、そのデータはすべて絡み合っています(ビュー#1に入力されたデータは、 #2で何かを計算するために使用されます)。Vue.jsの1つのグローバルデータ構造
つまり、グローバルデータ構造が必要です。私の研究から、私はそれを扱ういくつかの選択肢があることがわかりました:
- "適切な"方法:コンポーネントでイベントを発生させ、親で処理します。それは私が
- 子データの親データ参照を割り当て、
$parent.$data
- 私の現在のソリューションを経由してコンポーネントテンプレート内で直接親スコープへのアクセスがとても同様
オブジェクト達成したいもののために少しovercomplicatedようです:
const REPORTS = {
template: templates.reports,
data: function(){
return this.$parent.$data
}
};
しかし、私の第六感は、それは良い習慣ではないことを私に伝えています。
私が正しいとすれば、これを達成するより良い方法は何ですか?すべてのコンポーネントからアクセスできるグローバルなデータ構造です。
ありがとう、それは私が探していたものです。好奇心のために、親データ参照を子どもに渡すのがどれほど悪いですか? – angr
@angr親の子に限定されたコミュニケーションがあれば、親の子どものコミュニケーションは、[詳細](http://stackoverflow.com/a/40915910/1610034)のようにいつでも行くことができますが、 vuexを使用するよりも後で乱雑になることがある複数のコンポーネント間で通信する。 – Saurabh