Vue 형제 구성 요소의 값 전송 및 방법
前言
Vue 是一个非常流行的前端框架,它提供了很多方便的方法和 API,使得我们在开发过程中可以更加灵活和高效。其中,组件是 Vue 最为重要的概念之一,也是我们在实际开发中最为常用的部分。在组件中,兄弟组件之间的传值和方法调用是一个经常涉及到的问题。那么,本文将会介绍一些 Vue 中兄弟组件传值和方法调用的方法和技巧。
一、props / $emit
在 Vue 中,父组件向子组件传值,我们可以通过 props 的方式进行传递。而子组件向父组件传值,则可以通过 $emit 方法进行传递。那么在兄弟组件之间,我们可以通过这两种方式实现传值。具体实现方法如下:
1.1 props
通过 props 传值,需要在父组件中通过 v-bind 绑定属性,并且在子组件中通过 props 接收父组件传递的值。代码如下:
<h1>父组件</h1>
<child :message="msg"></child>
<script><br> import child from './child.vue'<br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">data () {
return {
msg: 'Hello World!'
}
},
components: {
child
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
<h2>子组件</h2>
<p>{{ message }}</p>
<script><br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">props: ['message']</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
在上面的代码中,父组件中通过 v-bind 绑定属性 message 并传递给子组件。子组件通过 props 接收 message,并且在模板中显示出来。
1.2 $emit
通过 $emit 传值,需要在子组件中通过 $emit 方法触发父组件的事件,并且将数值传递给父组件。在父组件中,需要通过 v-on 绑定事件,并且在事件处理函数中接收子组件传递的数值。代码如下:
<h1>父组件</h1>
<child @my-event="handleEvent"></child>
<p>{{ data }}</p>
<script><br> import child from './child.vue'<br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">data () {
return {
data: ''
}
},
components: {
child
},
methods: {
handleEvent (msg) {
this.data = msg
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
<h2>子组件</h2>
<button @click="sendMsg">向父组件传递数据</button>
<script><br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">methods: {
sendMsg () {
this.$emit('my-event', 'Hello World!')
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
在上面的代码中,子组件中通过 $emit 方法触发名称为 my-event 的事件,并将数值 'Hello World!' 传递给父组件。父组件中通过 v-on 绑定事件 my-event,并且将事件处理函数指定为 handleEvent。在这个事件处理函数中,我们将传递的数值赋值给了父组件的 data 属性。
二、$parent / $children
在 Vue 组件中,可以使用 $parent 和 $children 访问当前组件的父组件和子组件。通过这两个属性,我们可以在兄弟组件之间实现数据和方法的传递。具体实现方法如下:
2.1 $parent
通过 $parent 属性可以访问到当前组件的父组件。在父组件中,我们可以将需要传递的数据或者方法挂载在其实例上,并且在子组件中通过 $parent 访问到这些数据或方法。代码如下:
<h1>父组件</h1>
<child></child>
<script><br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">data () {
return {
message: 'Hello World!'
}
},
methods: {
showMessage () {
console.log(this.message)
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
<h2>子组件</h2>
<button @click="handleClick">调用父组件方法</button>
<script><br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">methods: {
handleClick () {
this.$parent.showMessage()
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
在上面的代码中,父组件通过 data 定义了一个 message 数据,同时也定义了一个 showMessage 方法。在子组件中,通过 $parent 访问到父组件中的 showMessage 方法,并在点击按钮时进行调用。
2.2 $children
通过 $children 属性可以访问到当前组件的子组件。同样的,在子组件中,我们可以将需要传递的数据或方法挂载在其实例上,并且在父组件中通过 $children 访问到这些数据或方法。代码如下:
<h1>父组件</h1>
<button @click="callChild">调用子组件方法</button>
<script><br> import child from './child.vue'<br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">components: {
child
},
methods: {
callChild () {
this.$children[0].showMessage()
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
<h2>子组件</h2>
<script><br> export default {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">methods: {
showMessage () {
console.log('Hello World!')
}
}</pre><div class="contentsignin">로그인 후 복사</div></div>
<p>}<br></script>
在上面的代码中,子组件通过定义 showMessage 方法,并将其挂载在实例上。在父组件中,通过 $children 访问到子组件实例,并调用其 showMessage 方法。
结论
通过本文的介绍,我们了解了 Vue 中兄弟组件传值和方法调用的几种方法。在实际开发中,在选择使用哪种方法时,需要根据场景和需求灵活应用。希望本文可以对大家在 Vue 组件传值方面的理解和开发实践有所帮助。
위 내용은 Vue 형제 구성 요소의 값 전송 및 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 Data Fetching 및 기능 구성 요소의 DOM 조작과 같은 부작용을 관리하기위한 후크 인 React의 useEffect에 대해 설명합니다. 메모리 누출과 같은 문제를 방지하기 위해 사용법, 일반적인 부작용 및 정리를 설명합니다.

JavaScript의 고차 기능은 추상화, 공통 패턴 및 최적화 기술을 통해 코드 간접성, 재사용 성, 모듈성 및 성능을 향상시킵니다.

이 기사는 가상 Dom 트리를 비교하여 DOM을 효율적으로 업데이트하는 React의 조정 알고리즘을 설명합니다. 성능 이점, 최적화 기술 및 사용자 경험에 미치는 영향에 대해 설명합니다. 문자 수 : 159

이 기사는 다중 연계 기능을 단일 연계 함수 시퀀스로 변환하는 기술 인 JavaScript의 카레에 대해 논의합니다. Currying의 구현, 부분 응용 프로그램 및 실제 용도와 같은 혜택, 코드 읽기 향상을 탐색합니다.

기사는 Connect ()를 사용하여 React 구성 요소를 Redux Store에 연결하고 MapStateToprops, MapDispatchtoprops 및 성능 영향을 설명합니다.

이 기사는 REACT의 USECONTEXT를 설명하며, 이는 PROP 시추를 피함으로써 상태 관리를 단순화합니다. 중앙 집중식 상태 및 성능 개선과 같은 렌더링을 통해 성능 향상과 같은 이점에 대해 논의합니다.

기사에서는 extentdefault () 메서드를 사용하여 이벤트 처리기의 기본 동작 방지, 향상된 사용자 경험과 같은 이점 및 접근성 문제와 같은 잠재적 문제에 대해 논의합니다.

이 기사는 예측 가능성, 성능 및 사용 사례와 같은 측면에 중점을 둔 React의 제어 및 통제되지 않은 구성 요소의 장단점에 대해 설명합니다. 그것은 그들 사이에서 선택할 때 고려해야 할 요소에 대해 조언합니다.
