이벤트 버스는 개발자가 지정한 2개의 컴포넌트 간에데이터를 주고받을 수 있는 방법이다.이전 포스팅에서 컴포넌트간 통신은 항상 상위-하위구조를 유지해야 데이터를 주고받을 수 있었다.이벤트 버스를 사용하면 이런 상위-하위 관계를유지하고 있지 않아도 데이터를 한 컴포넌트에서다른 컴포넌트로 전달할 수 있다. 먼저 아래 그림을 보자. 최하위에 있는 하위컴포넌트B에서 상위 컴포넌트A로데이터를 전달하려면 Vue에서 제시하는 기본적인컴포넌트 통신 방식을 생각해야한다.하위컴포넌트B 상위컴포넌트B 최상위컴포넌트를 거쳐서상위 컴포넌트A까지 가야한다. 하지만 웹이 커져컴포넌트가 많아지면 이런식의 데이터 전달 방식은 번거롭다.이럴 경우 이벤트버스를 사용하면 중간 컴포넌트들을 거치지 않고하위컴포넌트B 에서 바로 상위 컴포넌트A로..
이전 포스팅에서 props에대해 알아보았다.props는 상위에서 하위 컴포넌트로 데이터를 전달 하는 방식이다. 이번엔 그 반대로 하위컴포넌트에서 상위 컴포넌트로의 통신에대해알아보자. 먼저 하위에서 상위로 통신을 하기위해선이벤트를 발생시켜 상위 컴포넌트에 신호를 보내는 방법이 있다.상위 컴포넌트에서 하위컴포넌트의 특정 이벤트가 발생하기를 기다리다가하위 컴포넌트에서 특정 이벤트가 발생되면 상위 컴포넌트에서해당 이벤트를 수신해서 상위 컴포넌트의 메소드를 호출하면 된다. 먼저 이벤트 발생과 수신은 $emit()과 v-on: 속성을 사용한다.각각의 형식은 아래와 같다. $emit()을 사용하게되면 괄호 안의 이벤트가 발생된다.(보통 $emit()을 호출하는 위치는 하위컴포넌트의 특정 메소드 내부)따라서 $emit..
앵귤러1이나 백본과 같은 초창기 자바스크립트프레임워크에서는 한 화면을 한 개의 뷰로 정의했다.그래서 한 화면의 데이터를 해당 화면 영역 어디서든지호출할 수 있었다. 하지만 뷰의 경우 컴포넌트로 화면을구성해서 같은 웹 페이지라도 데이터를 공유할수 없었다.왜냐하면 컴포넌트마다 자체적으로 고유한 유효범위(scope)를갖기 때문이였다. 이는 뷰 프레임워크 내부에서 정의된 특징이다.따라서 각 컴포넌트의 유혀범위가 독립적이라 다른 컴포넌트의값을 직접 참조할수가 없다. 먼저 간단하게 예제를 보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344 Vue Component Scope // 첫 번째 컴포넌트 var cmp1 = ..