프론트엔드 개발자의 기록 공간

[Vue3] Vue(3) 본문

프로그래머스 데브코스_FE/TIL

[Vue3] Vue(3)

[리우] 2021. 10. 13. 03:07

❗❗  데브코스 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
728x90

'프로그래머스 데브코스_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
Comments