vue-cli를 설치한 뒤 vue create 명령어로 프로젝트를 생성하면 아래와 같은 폴더 구조가 생성됩니다.

이 중 첫번째로 알아볼 파일은 pakage.json입니다.
package.json이란 현재 프로젝트에 관한 정보와 패키지 매니저(npm, yarn)을 통해 설치한 모듈들의 의존성을 관리하는 파일입니다.
기본내용은 아래와 같습니다.
{
"name": "vue-re-study",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.8.3",
"vue": "^3.2.13"
},
"devDependencies": {
"@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "@babel/eslint-parser"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie 11"
]
}
위 코드를 차례로 뜯어보겠습니다.(지엽적인 내용들은 제외)


dependencies나 devDependencies에 있는 모듈들 또한 사람들이 프로젝트로 만들어 배포한 모듈입니다. 그렇기에 모듈들도 dependencies를 사용하여 다른 모듈들을 끌어왔을 것입니다.
그렇다면 모듈의 dependencies는 어디서 확인할 수 있을까요?
정답은 package-lock.json파일에서 확인할 수 있습니다.(node_modules폴더에 모듈파일이 많은 이유입니다.)

package-lock.json 파일입니다. 내용이 굉장히 길죠?

우리가 해당 프로젝트를 실행(npm run serve)하게 될 경우, 가장먼저 실행되는 파일입니다.
vue는 SPA로써 index.html파일 하나로 vue application이 구동됩니다.



첫번째 이미지가 단방향 데이터 바인딩, 두번째가 이미지가 양방향 데이터 바인딩을 나타내고 있습니다.

단방향 데이터 바인딩

양방향 데이터 바인딩(v-model속성을 가진 input값과 userId가 동기화되어있음)
양방향 데이터 바인딩은 v-model을 사용.

매개변수가 존재한다면 3번째 라인처럼 사용해야하고, 매개변수가 없다면 4번째 라인처럼 소괄호 및 세미콜론을 생략할 수 있습니다.




오브젝트 형태뿐만 아니라 배열형태로도 가능합니다. 하지만, 실무에서 class값의 변경이 빈번하기 때문에 배열형태로 사용하진 않습니다.


font-size를 예로들면, 일반 style정의에서는 font-size를 key로 정의하지만 vue에서는 fontSize로 정의합니다. (사실 일반 JS에서도 위 형태와 똑같이 사용합니다)




하지만 이러한 방식은 추천하지 않습니다. 가독성이 좋지않거든요

주요 key에 대해서 event값을 바로 받을 수 있도록 제공합니다.