Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- intellij 즐겨찾기
- git
- 백명석님
- JPA
- multipart테스트
- Linux
- javascript case
- 자바 ORM 표준 JPA 프로그래밍
- ksql
- Stream
- ksqldb
- java
- Spring Cloud Netflix
- 리팩토링 2판
- vue.js
- 자바 ORM 표준 JPA 프로그래밍 정리
- @TransactionalEventListener
- IntelliJ
- CompletableFuture
- #docker compose
- @Transactional Propagation
- intellij favorites
- 친절한 SQL 튜닝
- findTopBy
- intellij 핵심 단축키
- HandlerMethodArgumentResolver
- 마이크로 서비스
- 리눅스
- 원격 브랜 삭제
- aws
Archives
- Today
- Total
시그마 삽질==six 시그마
Vue.js 이벤트 버스(event bus) 본문
vue.js 의 props 와 event는 부모자식간 상위 하위 관계의 컴포넌트끼리의 통신에 적합하다
그런데 만약 형제자매인 같은 레벨의 컴포넌트끼리간 데이타를 전달해야된다면?
그때마다 필요치 않은 부모(상위) 컴포넌트를 만들어서 하위 ->상위->하위로 왔다갔다 해야하나?
그 문제로 인해 이벤트 버스가 나오게 됬다
생성한 인스턴스를 이용, 보내는쪽은 $emit, 받는쪽은 $on
1. 이벤트 버스 코드 형식
//이벤트 버스를 위한 추가 인스턴스 생성
var eventBus = new Vue();
//이벤트를 보내는 컴포넌트
methods: {
showLog: function() {
eventBus.$emit('전달 이벤트명', 전달 데이터);
}
}
//이벤트를 받는 컴포넌트
created: function() {
eventBus.$on('전달받아 트리거된 이벤트명', function(받은 데이터){
........
});
}
2. 이벤트 버스 예시
<div id="app">
<child-component></child-component>
</div>
var eventBus = new Vue();
Vue.component('child-component', {
template: '<div><button v-on:click="myMethodCall">clickHere</button></div>',
methods: {
myMethodCall: function() {
eventBus.$emit('eventTrigger', '난 너를 호출했다!' ); //이벤트 트리거한쪽(보내는쪽)
}
}
});
var app = new Vue({
el: '#app',
created: function() {
eventBus.$on('eventTrigger', function(value){ //이벤트 받은쪽
console.log("이벤트를 전달 받은 내용: ", value);
});
}
});
//결과: 난 너를 호출했다!
'프로그래밍 > Javascript' 카테고리의 다른 글
vue의 생명주기 (0) | 2020.05.02 |
---|---|
Vue란 무엇인가? (0) | 2020.05.02 |
Vuex (0) | 2020.04.19 |
Vue.js Emit (0) | 2020.04.14 |
Vue.js props 속성 (0) | 2020.04.14 |
Comments