検索

ホームページ  >  に質問  >  本文

vuex を使用してイベントをよりエレガントにディスパッチするにはどうすればよいでしょうか?

私は常に new Vue() を使用してグローバル通信バスを定義してきました。そのため、コンポーネント間の通信には、一方が送信し、もう一方がリッスンするだけで済みます。その後、vuex に切り替えました。vuex は単なるグローバル データであると感じます。イベントをディスパッチする必要がある場合: たとえば、コンポーネント A のイベントがコンポーネント B のメソッドをトリガーする (たとえば、ボタンをクリックする、タイマーをキャンセルする)私が現在使用している方法は、ブール値を定義し、それがトリガーされるたびに false を受け取り、コンポーネント内でこの値を監視してメソッドを呼び出すことです。

写真に示すように:

それでは聞いてください:

もっと良い方法がある人はいますか?

黄舟黄舟2788日前769

全員に返信(3)返信します

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:41:29

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:41:29

    これにはvuexを使うのが良いのではないでしょうか?なぜ無駄に見えるのでしょうか?これと同じように、loginSuccessを使ってユーザーのアバターを表示するかどうかを制御すると、かなり使い心地が良いと思います

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:41:29

    1. オブジェクトの状態変更を通知したいだけの場合は、イベントを使用することをお勧めします。
    1. 親コンポーネントで対応するイベント名をリッスンし、子コンポーネントをトリガーすることにより、親コンポーネントと子コンポーネントの間でイベント通信を行います。
    2. 非親子コンポーネントはイベントバスメソッドを使用します

    2. コンポーネント間のデータ共有
    1. 中規模および大規模なアプリケーションは vuex を使用します
    2. アプリケーション シナリオが比較的少ない場合、親子コンポーネントはデータ転送にイベント バスを使用します

    返事
    0
  • キャンセル返事