v-on, v-model 등의 삽입이 이뤄진 태그들을 재사용하고자 할 때에 유용하다.
기존에 작성한 태그의 코드를 그대로 복사하여 사용하게 되면,
모두 같은 data 객체를 공유하므로,
각각의 복사된 태그별로 data 내부 값을 새롭게 지정해주어야 한다.
그럼 또 각 data에 붙어있던 methods도 각각 새로 지정해줘야만 한다.
코드의 중복은 지양해야한다
반복되는 코드를 가진 태그를 묶는 최소단위.
template, data, methods로 구성
//앞선 글의 끝말잇기 부분의 코드를 재활용하고자 할 때, component로 만들어 관리해보려 한다. <div id="root"> /* <div>{{word}}</div> <form v-on:submit="onSubmitForm"> <input type="text" ref="answer" v-model="value"> <button type="submit">입력</button> </form> <div>{{result}}</div> </div> */ <WordRelay></WordRelay> <WordRelay></WordRelay> <WordRelay></WordRelay> </div> //여기서부터 component 생성에 대한 코드 <script> Vue.component('WordRelay', { template: ` <div> <div>{{word}}</div> <form v-on:submit="onSubmitForm"> <input type="text" ref="answer" v-model="value"> <button type="submit">입력</button> </form> <div>{{result}}</div> </div> `, data: { return { word: '생우', result: '', value: '' }; }, methods: { onSubmitForm(e) { e.preventDefault(); if(this.word[this.word.length - 1] === this.value[0]) { this.result = '정답!'; this.word = this.value; this.value = ''; this.$refs.answer.focus(); } else { this.result = '땡!'; this.value = ''; this.$refs.answer.focus(); } } } }) </script>
Google Assistant - Interactive Canvas (Intro) (0) | 2019.07.26 |
---|---|
props와 webpack의 필요성 (0) | 2019.07.25 |
미니게임 UI 디자인 (0) | 2019.07.24 |
Google Assistant - Interactive Canvas (인터렉티브 캔버스) (0) | 2019.07.22 |
canvas API - 색상 (0) | 2019.07.22 |
댓글 영역