> 웹 프론트엔드 > View.js > Vue 컴포넌트 통신의 데이터 업데이트 방식 분석

Vue 컴포넌트 통신의 데이터 업데이트 방식 분석

WBOY
풀어 주다: 2023-07-19 10:33:31
원래의
1476명이 탐색했습니다.

Vue 컴포넌트 통신의 데이터 업데이트 체계 분석

Vue 개발에서 컴포넌트 통신은 중요한 역할을 합니다. 컴포넌트 통신에서 데이터 업데이트는 필수적인 링크입니다. 이 기사에서는 Vue 컴포넌트 통신의 데이터 업데이트 체계를 분석하고 코드 예제를 통해 설명합니다.

  1. 부모-자식 컴포넌트 통신

부모-자식 컴포넌트 통신에서는 부모 컴포넌트가 props를 통해 자식 컴포넌트에 데이터를 전달할 수 있고, 자식 컴포넌트가 $emit 이벤트를 통해 부모 컴포넌트에 데이터를 보낼 수 있습니다.

코드 예:

// 상위 구성 요소 App.vue

<script><br>'./에서 ChildComponent 가져오기 ChildComponent.vue';</p><p>내보내기 기본값 {<br> 구성 요소: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>ChildComponent</pre><div class="contentsignin">로그인 후 복사</div></div><p>},<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { message: 'Hello World' }</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><p>},<br> 메서드: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>handleUpdate(data) { this.message = data; }</pre><div class="contentsignin">로그인 후 복사</div></div><p>}<br>}<br></script>

// child Component ChildComponent.vue

<script><br>기본 내보내기 {<br> props: ['message'],<br> 메소드: { </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>sendMessage() { this.$emit('update', 'Hello Vue'); }</pre><div class="contentsignin">로그인 후 복사</div></div><p>}<br>}<br></script>

이 예에서 상위 구성 요소는 props를 통해 메시지 속성을 하위 구성 요소에 전달합니다. 하위 컴포넌트가 버튼을 클릭하면 $emit 이벤트를 통해 업데이트 이벤트가 상위 컴포넌트로 전달되고, 데이터로 "Hello Vue"가 전달됩니다. 상위 구성 요소의 handlerUpdate 메소드는 데이터를 수신한 후 이를 메시지에 할당하여 데이터를 업데이트합니다.

  1. 형제 컴포넌트 통신

형제 컴포넌트 통신에서는 공통 상위 컴포넌트에 데이터를 정의한 후 각각 props와 이벤트를 통해 데이터를 업데이트할 수 있습니다.

코드 예:

// 상위 구성 요소 App.vue

<script><br>'./에서 ChildComponent1 가져오기 ChildComponent1.vue';<br>'./ChildComponent2.vue'에서 ChildComponent2 가져오기;</p><p>기본값 내보내기 {<br> 구성 요소: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>ChildComponent1, ChildComponent2</pre><div class="contentsignin">로그인 후 복사</div></div><p>},<br> 데이터() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { message: 'Hello World' }</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><p>},<br> 메서드: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>handleUpdateMessage(data) { this.message = data; }</pre><div class="contentsignin">로그인 후 복사</div></div><p>}<br> }<br></script>

// 하위 구성 요소 ChildComponent1.vue

<script><br>기본값 내보내기 {<br> props: ['message'],<br> 메소드: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>sendMessage() { this.$emit('update-message', 'Hello Vue'); }</pre><div class="contentsignin">로그인 후 복사</div></div><p>}<br>}<br></script>

// 하위 구성 요소 ChildComponent2.vue

<script><br>export default {<br> props: ['message']<br>}<br></script>

이 예에서 메시지 데이터는 상위 구성 요소 App.vue에 정의됩니다. 를 작성하고 이를 두 하위 구성 요소인 ChildComponent1 및 ChildComponent2에 전달했습니다. ChildComponent1이 버튼을 클릭하면 $emit 이벤트를 통해 update-message 이벤트가 상위 컴포넌트로 전송되고 "Hello Vue"가 데이터로 전달됩니다. 상위 구성 요소의 handlerUpdateMessage 메서드는 데이터를 수신한 후 이를 메시지에 할당합니다. ChildComponent2도 메시지 속성에 바인딩되어 있으므로 ChildComponent2는 메시지가 업데이트될 때 자동으로 표시를 업데이트합니다.

Summary

소품과 이벤트를 통해 Vue 컴포넌트 통신의 데이터를 업데이트할 수 있습니다. 부모-자식 컴포넌트 통신에서는 부모 컴포넌트가 props를 통해 자식 컴포넌트에 데이터를 전달하고, 자식 컴포넌트는 $emit 이벤트를 통해 부모 컴포넌트에 데이터 업데이트 요청을 보냅니다. 형제 컴포넌트 통신에서는 공통 상위 컴포넌트에 데이터를 정의한 다음 props 및 이벤트를 통해 데이터를 업데이트할 수 있습니다. 이러한 데이터 업데이트 솔루션은 실제 Vue 개발에 널리 사용되어 구성 요소 통신 및 데이터 업데이트를 더 잘 구현하는 데 도움이 됩니다.

위 내용은 Vue 컴포넌트 통신의 데이터 업데이트 방식 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿