일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 node.js
- 리팩토링 회고
- useRef 지역 변수
- useEffect return
- 백준 js
- frontend roadmap study
- TypeScript 문법 소개
- Vue3
- 모던 자바스크립트 Deep Dive TIL
- 개발자 특강
- 프로그래머스 K_Digital Training
- Vue3 Router
- react 프로젝트 리팩토링
- K_Digital Training
- 프로그래머스 K_Digital Training 프론트엔드
- 투포인터알고리즘 js
- 모던 자바스크립트 딥다이브
- 모던 자바스크립트 Deep Dive
- 모던 자바스크립트 TIL
- 인프런 자바스크립트 알고리즘 문제풀이
- KDT 프로그래머스
- 프로그래머스 데브코스
- Frontend Roadmap
- react customHook 예시
- KDT 프로그래머스 데브코스 프론트엔드
- 머쓱이
- 프로그래머스 데브코스 프론트엔드 TIL
- 모던 javascript Deep Dive
- 프로그래머스 데브코스 프론트엔드
- 우테캠 회고록
- Today
- Total
프론트엔드 개발자의 기록 공간
[Vue3] Vue(3) 본문
❗❗ 데브코스 43일차 (09.29)
Vue3일차...React가 그리워지기 시작했다...
Vue의 강력한 장점 양방향 바인딩과 Vue 프로젝트를 사용하기에 앞서,
환경세팅을 위한 node, npm에 대해서 강의가 진행 됐다.
✅ 양방향 바인딩
"v-model" 디렉티브를 사용하면 input, textarea, select 요소들에 양방향 데이터 바인딩을 생성할 수 있다.코드 예시를 통해 알아보자.
1. Input 예시
//Vue 코드
<div>
<input v-model="message" placeholder="edit me" />
<p>Message is: {{ message }}</p>
</div>
data() {
return {
message: ''
}
}
위의 코드를 실행하면 input값에 적힌 내용에 따라 "message" 변수가 실시간으로 바뀐다.
Vue를 처음 학습하면 이 문법이 좋은지 이해가 안 될 것이다. 리액트로 구현한 input, value를 통해 차이를 찾아보자.
//React 코드
function Input() {
const [message, setMessage] = useState('');
const onChange = (e) => {
//이벤트가 발생하는 target의 value값을 가져와 업데이트해준다.
setText(e.target.value);
}
return (
<div>
<input onChange={onChange} value={message} />
<div>
{message}
</div>
</div>
)
}
Vue의 코드는 변수만 정의해주면 알아서 값이 바뀌면서 출력값도 바뀐다. 즉 Input값에 따라 "message"가 서로 양방향으로 바인딩이 되고 있다.
하지만 React의 경우 onChange함수를 통해 값이 변경될 때 마다, 값을 직접받아와서 업데이트를 진행해줘야하는 다소 번거로움이 있다.
2. checkbox예시
<div>
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames" />
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames" />
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames" />
<label for="mike">Mike</label>
<br />
<span>Checked names: {{ checkedNames }}</span>
</div>
data() {
return {
checkedNames: []
}
}
위의 코드를 실행하면 체크 결과에 따라 배열이 자동으로 업데이트 되면서 화면에 출력된다.
이 뿐만 아니라 radio, select 등 도 양방향 바인딩을 이용할 수 있다.
✅ 새로 알게된 지식
nvm : node 버전 관리하는 도구이다. 프로젝트별로 node.js 버전을 다르게 설정하여 사용 및 관리할 수 있다.
npx : npm은 로컬 환경에서 설치해서 사용하는데 npx는 메모리상에서만 설치하고 실행하는 명령어이다.
.gitignore : 깃버전관리 시스템을 통해서 무시할 폴더나 파일을 명시해서 git에 올리는걸 방지할 수 있다.
보통 아래 항목들을 추가한다. 배포파일 및 개인 설정파일
dist/
node_modules/
.vscode/ (vscode 사용자)
.idea/ (웹스톰 사용자)
.DS_Store/ (맥 사용자)
👨💻 Vue의 양방향 바인딩은 정말로 탐나는 문법이다. React로 훔쳐오고싶다....
📖 학습한 내용
- Vue(3)
- 폼 입력 바인딩
- 컴포넌트 기초
- Node.js와 NPM
'프로그래머스 데브코스_FE > TIL' 카테고리의 다른 글
[Vue3] Vue(5) 상태관리 (0) | 2021.11.08 |
---|---|
[Vue3] Vue(4) & Webpack (0) | 2021.10.14 |
[Vue3] Vue(2) (0) | 2021.10.12 |
[Vue3] Vue(1) (0) | 2021.10.11 |
[html&CSS Clone] YouTube & 당근마켓 (2) | 2021.10.03 |