설치 후,webpack.config.js를 연 후 아래의 코드조각을rules배열에 추가시켜 주세요. 만약sass룰이 이미 존재한다면, 아래 변경 코드 조각의 일부 또는 전부를 적용해야 할 수 있습니다. 조금 더 간결함을 위해vuetify-loader와 같은 유틸을 사용하고 싶다면 4 버전 이상의Webpack을 사용하세요. Webpack 을 이용한 더욱 많은 설정 방법에 대해 알고싶다면A-la-cartepage 를 참고하세요.
Vue CLI 를 통한 설치 없이 직접 Vuetify.js 를 테스트 하고 싶다면, 아래의 코드 조각을index.html에 직접 추가 해 주세요. 이것으로 여러 컴포넌트들이 사용가능한 최신버전의 Vue와 Vuetify가 설치될 것입니다. 또한,Vuetify starter를 이용해 Codepen 위에서 테스트 해볼 수 있습니다. 배포 환경에선 CDN 패키지를 추천하진 않습니다만 필요하다면 사용하는 에셋들의 버전을 명시해주는것이 유리합니다. 이것에 대하여 더 알고싶다면jsdelivr웹사이트를 참고하세요.
1단계는 문서 내의 요소에서 이벤트가 발생했을 때 HTML 문서의 밖에서부터 이벤트를 발생시킨 HTML 요소까지 포착해 들어가는 이벤트 포착 단계(CAPTURING_PHASE)이다.
2단계는 이벤트를 발생시킨 요소에 다다르면 요소의 이벤트에 연결된 함수를 직접 호출시키는 이벤트 발생(RAISING_PHASE: AT_TARGET) 단계이다.
마지막 3단계로는 이벤트가 발생한 요소로부터 상위 요소로 거슬러 올라가면서 동일한 이벤트를 호출시키는 버블링(BUBBLING_PHASE) 단계이다.
일반적으로는 2단계 RAISING, 3단계 BUBBLING_PHASE 에서 연결된 이벤트 함수가 호출된다. 이것을 그림으로 나타내면 아래와 같다.
이벤트 전파의 3단계
위 그림에서#outer 영역과#inner 영역의 요소에 각각 click 이벤트를 연결했을 때,#outer 영역을 클릭했을 때에는 해당 이벤트와 연결된 메소드가 실행되지만,#inner 부분에 해당하는 안쪽 영역을 클릭했을 때에는,#inner 영역의 클릭 시 연결된 이벤트가 발생될 것이라는 일반적인 기대와는 달리,#inner 와#outer 영역에 연결된 각각의 메소드가 모두 실행된다.
#inner 를 클릭(2 AT_TARGET)했을 때 상위 요소인 #outer 요소로 이벤트가 전파(3 BUBBLING)되기 때문이다. 이 때 이벤트 전파(Propagation)를 막기 위해서 이벤트 객체의 stopPropagation() 메서드를 호출해서 사용할 수 있다
Vue.js에서 이벤트를 다루는 방법에 대해서 간단히 정리하려고 합니다. HTML에는<a>나<input>처럼 당연히 알고 있는 기본 이벤트가 있습니다. 그리고 이미javascript를 통해서 기본 이벤트와 어우러지게 사용하는 방법들이 있구요. 여기에서 Vue.js는 javascript로 조금 어렵게 구현했던 기능들을v-on디렉티브를 통해서 좀더 쉽게 구현할 수 있는 방법을 제공하고 있습니다.
이벤트 구현
Vue.js에서 이벤트를 구현하는 방법인v-on디렉티브를 이용합니다. v-on은 줄여서@로 대체할 수 있습니다.
예>
copy html<!-- 해당 태그를 클릭 했을 경우 goodgood() 메소드 실행. --><buttonid="goodboy"v-on:click="goodgood">좋아요</button><buttonid="goodboy" @click="goodgood">좋아요</button>
좋아요 버튼을클릭하면 javascript로 작성된goodgood()메서드를 호출합니다.
활용 이벤트 명
아래의 이벤트명을v-on또는@와 같이 사용하면 됩니다.
v-on:click="..." @dblclick="..." @mouseover=".."
이벤트명설명
click
마우스를 클릭했을 때 실행함
dblclick
마우스를 더블 클릭했을 때 실행함
mouseover
마우스의 포인트가 요소 위로 올라왔을 때 실행함
mouseout
마우스의 포인트가 요소 밖으로 벗어났을 때 실행함
mousemove
마우스의 포인트가 이동했을 때 실행함
mousedown
마우스의 버튼을 눌렀을 때 실행함
mouseup
마우스의 버튼을 놓았을 때 실행함
keydown
키보드의 키를 눌렀을 때 실행함
keyup
키보드의 키를 놓았을 때 실행함
keypress
키보드의 키를 눌렀다가 놓았을 때 실행함
change
요소가 변경될 때 실행함
submit
<Form>이 제출될 때 실행함
reset
<Form>이 재설정될 때 실행함
select
<select>의 값이 선택되었을 때 실행함
focus
태그에 포커스가 있을 때 실행함
blur
태그에 포커스를 잃었을 때 실행함
이벤트 수식어
Vue.js에서는 복잡한 javascript구현을 간단히 처리하기 위해서 수식어를 제공하고 있습니다. 이 수식어는 이벤트명에.으로 연결하여 사용합니다.
예>
copy html<!-- 해당 태그를 클릭 했을 경우 a태그 이벤트를 막고 goodgood() 메소드 실행. --><aid="goodboy"v-on:click.prevent="goodgood">좋아요</a><aid="goodboy" @click.stop="goodgood">좋아요</a>
좋아요 버튼을클릭하면 javascript가<a>태그가 기본 수행하는href="..."이벤트를 중지시키고goodgood()메서드만 호출합니다.
copy html<!-- 스크롤의 기본 이벤트를 취소할 수 없습니다. --><divv-on:scroll.passive="onScroll">...</div>키 수식어
키(Key)에 대한 수식어는 원래 숫자를 이용하는 것이였으나 사람이 숫자를 기억하기 힘들기 때문에 키값에 해당하는 수식어를 별도의 이름으로 지정하여 활용합니다.
copy html<!-- keyCode가 13일 때만 `vm.submit()`을 호출합니다 --><input @:keyup.13="submit"><!-- keyCode가 13 대신 .enter로 지정하여 활용합니다. 위의 코드와 동일하게 작동합니다. --><input @keyup.enter="submit">
1개 키 사용법 <input @click.enter="..."> <input @keyup.tab="..."> <input @keyup.space="...">
여러 키 사용법 <input @click.ctrl.enter="..."> <input @keyup.alt.23="..."> <input @keyup.shift.13="...">
키 수식어 명고유 키 값비고
.enter
13
.tab
9
.delete
8
“Delete” 와 “Backspace” 키 모두 해당
.esc
27
.space
32
.up
33
.down
34
.left
37
.right
39
.ctrl
17
.alt
18
.shift
16
.meta
매킨토시에서 command 키, Windows에서는 windows 키
그 외의 키들은 개별로 커스텀하게 제작하여 사용할 수 있습니다.
마우스 버튼 수식어
키(Key) 수식어 처럼 마우스 버튼에 대한 수식어도 아래와 같습니다.
키 수식어 명설명
.left
마우스 왼쪽 버튼 클릭
.right
마우스 오른쪽 버튼 클릭
.middle
마우스 가운데 휠 버튼 클릭
예>
copy html<!-- 마우스 오버 후 오른쪽 버튼 클릭을 했을 경우 `goodgood()`을 호출합니다 --><divid="goodboy"v-on:mouseover.left="goodgood"></div><!-- 마우스 오버 후 왼쪽 버튼 클릭 했을 경우 `goodgood()`을 호출합니다 --><divid="goodboy" @mouseover.right="goodgood"></div>