Vue.jsを新しく追加しました私はここでチュートリアル(https://coligo.io/dynamic-components-in-vuejs/)に従っています。ダイナミックなコンポーネントでは、私が好きだったダイナミックなレイアウトを提供し、製品をリストし、ユーザーがテーブル内の製品の1つをクリックすると編集ビューに切り替えることができます。したがって、私は、 'list-products'コンポーネントと 'edit-product'コンポーネントを持っており、どちらが表示されるかは、メインVueインスタンスの 'currentView'の状態に依存します。Vue.js動的コンポーネント - データを渡す
<div id="content">
<keep-alive>
<component :is="currentView"></component>
</keep-alive>
</div>
currentViewが変更された場合、切り替えはすべて正常に動作しています。私が把握していないのは、製品情報を編集コンポーネントに渡して、データとして終わるようにすることです。私はリストと編集コンポーネントがVueインスタンスの2つの兄弟コンポーネントであり、同時にインスタンス化されていると考えます。私がする必要があるのは、リスティングテーブルの行をクリックし、その行を作成するために使用されたプロダクトオブジェクトを編集コンポーネントで使用できるようにすることです。私はどのようにそれを(少なくとも、適切なVueの方法で)行うのか分からない。表示されたコンポーネントが( 'currentView'の変更を介して)切り替わると、新しく表示されたコンポーネントに対して何らかのイベントが呼び出されますか?もしそうなら、私はおそらくいくつかの機能を呼び出すことができますか?
後で:私は何とか使うことができるはずだと思う編集製品コンポーネントに切り替えると、「活性化された」フックが呼び出されると判断しました。今それを理解する。
ありがとう、それは良いアプローチに見えます。現時点では、リストコンポーネントのルートインスタンス(vm.currentProduct = product)にデータプロパティを設定してから、そのプロパティを編集コンポーネントのデータに使用するだけで、むしろ不満足な方法で作業しています。 1つは、キープアライブが自動更新の方法になるということです。編集コンポーネントの 'activated'フックで 'this.product = vm.currentProduct'を実行する必要があります。そのため、スイッチを切り替えるたびに更新されます。 –