일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 미지아
- 아빠육아
- 도로패임
- 엔진오일
- 픽업트럭
- 남자육아휴직
- 중고노트북
- 대한민국선거
- 청주시 지하철
- 육아휴직급여
- 코란도스포츠
- 저출산
- 샤오미
- 액티언스포츠
- 청주시 일반계 고등학교
- 자전거
- 콜로라도
- 싸이클
- 40대아빠육아
- 2024년 합계출산율
- 오프로드
- 데이터시각화
- MTB
- 감나무전지
- 가칭 동남고등학교
- 준연동형비례대표
- 인공지능
- 파리브레스트파리
- 전동전기톱
- 국민을 위한 국민연금은 없다
Archives
- Today
- Total
열심히 일한 당신 떠나라
코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 5일차 본문
4장 실습: 계산기 만들기
4.1 실습 내용 소개
사용자 인터페이스에 표시된 숫자를 클릭하면 간단한 사칙연산을 하는 계신기 어플리케이션
4.2 뷰 애플리케이션의 기본 구조 설정하기
4.3 계산기의 UI 구성하기
html 코드의 body 부분은 <template> 부분으로
css 코드는 <style> 부분으로
4.4 데이터 바인딩하고 이벤트 연결하기
4가지 데이터 정의
- output(출력칸에 표시되어 사용자에게 노출되는 값),
- prev(이전에 입력된 값 또는 연산 결과),
- cur(현재 입력된 값),
- operator(연산자)
export default {
data() {
return {
output: null, // 출력칸에 표시되어 사용자에게 노출되는 값
prev: null, // 이전에 입력된 값 또는 연산 결과
cur: null, // 현재 입력된 값
operator: null,// 연산자
};
},
}
v-model 디렉티브를 사용해서 output 데이터를 양방향으로 바인딩
<input v-model="output" type="text" name="output" readonly />
v-on 디렉티브(@)를 사용해서 나머지 버튼을 이벤트 연결
<input type="button" class="clear" value="C" @click="operation" />
// 나마지 버튼
4.5 계산기 로직 구현하기
클릭한 버튼 값 가져오기
입력한 값 노출하기
methods: {
operation(e) {
const n = e.currentTarget.value;
this.cur = this.cur === null ? n : (this.cur += n)
this.output = this.cur
// console.log(n); //개발자도구에서 값 확인용
},
},
연산 로직 구현하기
초기화 함수, 계산 함수, 입력 함수를 분리하여 가독성을 높임.
methods: {
clear() { 초기화 },
calculate(n) { 연산 수행 },
userInput(n) { 사용자가 입력한 숫자를 저장 },
operation(e) {
클릭한 버튼 값 가져오기;
if (n === 'C') {
this.clear();
} else if ( 연산자를 포함한다면 ) {
this.calculate(n);
} else {
this.userInput(n);
}
},
},
완전한 코드를 원한다면 길벗 깃허브를 참조하세요.
https://github.com/gilbutITbook/080384.git
'정보교육 > 프런트엔드' 카테고리의 다른 글
코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 6일차 (0) | 2024.06.24 |
---|---|
vue.js 프로젝트: 일정 관리가 포함된 홈페이지 만들기 (0) | 2024.06.23 |
코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 4일차 (0) | 2024.06.20 |
코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 3일차 (0) | 2024.06.19 |
코딩 자율학습단(Vue.js 프런트엔드 개발 입문) 2일차 (0) | 2024.06.18 |