これは実践の詳細ですが、私は実際に動作するシナリオを持っていませんが、私は例を挙げることができます。 Facebookのメッセンジャーを想像してみてください。ヘッダにチャットウィジェットがあり、メッセージをすばやく表示して返信することができます。また、[すべて表示]をクリックすると、メッセージページに移動できます。Vuejsは変数と関数を共有する複数のコンポーネントを持っています
私には2つのVueコンポーネントがあることがわかります。親コンポーネントと子コンポーネントは、すべてのページとメッセージページで使用されるため、より兄弟です。今
<chat></chat> and <chat-widget></chat-widget>
私が見ることができるものから、ウィジェットとチャットウィンドウ自体渡って同じように動作する機能は、おそらく彼らはストレートのためにそれらがロードされている場所で、わずかに異なるテンプレートを持っていますが、代よさバットは次のようになります。私は私のVueのフロントエンドと私のバックエンド(データベース)との間に要求を送信するためにaxiosを使用することになり、私のバックエンドとしてLaravelを使用するよう
messages() {}
compose() {}
validate() {}
これらはほんの一部の例です。
理想的には、これらのコンポーネントの機能を複製したくないので、単にそれらを複製するか、何らかの親関数を保存する方法がありますか?
1つの問題は、非同期のajaxリクエストのためです。私が単にバインドするメッセージを返す関数を呼び出すことはできません。少なくとも、私はできないと思います。
コンポーネント内で同じ機能を複製していないように、Vueでこれを最もうまくやる方法についてのガイダンスを探してください。
多くのメッセージコンポーネントを持つコンテナ/リストコンポーネントを作成する必要があります。 – LakiGeri
私はそれがどのように動作するかを視覚化できません。私は、このコンポーネントがメッセージとメッセージ関数と他のコンポーネントがそれらの関数と変数を直接使用していると言っているとあなたは言うでしょうか?どうすればいいのか分かりません。 – seb14717