Vue.js를 처음 사용했습니다. 여기에있는 튜토리얼 (https://coligo.io/dynamic-components-in-vuejs/)을 따라 동적 구성 요소를 사용하여 내가 좋아하는 동적 레이아웃을 제공하고 제품을 나열하고 사용자가 테이블의 제품 중 하나를 클릭 할 때 편집보기로 전환 할 수있게했습니다. 따라서 '목록 제품'구성 요소와 '편집 제품'구성 요소가 있으며 표시되는 것은 Vue 인스턴스의 'currentView'상태에 따라 다릅니다.Vue.js 동적 구성 요소 - 데이터 전달
<div id="content">
<keep-alive>
<component :is="currentView"></component>
</keep-alive>
</div>
currentView가 변경되면 전환이 모두 정상적으로 작동합니다. 내가 알아 내지 못한 것은 제품 정보를 편집 구성 요소에 전달하여 데이터로 끝내는 것이 가장 좋습니다. 목록 및 편집 구성 요소가 동시에 인스턴스화 된 기본 Vue 인스턴스의 두 형제 구성 요소라고 가정합니다. 내가해야 할 일은 목록 테이블에서 행을 클릭하고 해당 행을 작성하는 데 사용 된 제품 객체를 편집 구성 요소에서 사용할 수있게하는 것입니다. 나는 내가 어떻게하는지 (적어도 적당한 Vue 방법으로) 확신하지 않는다. 표시된 컴포넌트가 ('currentView'의 변경을 통해) 전환 될 때 새로 표시된 (다시) 표시된 컴포넌트에 대해 호출되는 이벤트가 있습니까? 그렇다면 아마도 일부 기능을 호출 할 수 있습니까?
나중에 : 어떻게 든 사용할 수 있어야한다고 생각하는 편집 제품 구성 요소로 전환하면 '활성화 된'후크가 호출되는 것으로 확인되었습니다. 이제 그 점을 이해하십시오.
감사합니다. 좋은 접근 방법입니다. 지금은 목록 구성 요소의 루트 인스턴스 (vm.currentProduct = product)에 데이터 속성을 설정 한 다음 편집 구성 요소의 데이터에 해당 속성을 사용하여 다소 불만족스러운 방식으로 작업하고 있습니다. 하나의 특이한 점은 keep-alive가 자동 업데이트하는 방식이기 때문에 edit 구성 요소의 'activated'후크에서 'this.product = vm.currentProduct'를 수행해야하므로 업데이트 할 때마다 업데이트됩니다. –