Vue.js Starter - Vue CLI
Vue.js νλ‘μ νΈ ν¬μ μΌμ£ΌμΌ μ - Part 1
1. Vue.js Characteristics π©βπ»
1. MVVM Pattern
Model
-View
-ViewModel
μ μ¬μ©νλ€.
2. Component
View
λ₯Ό μ¬λ¬ κ°λ‘ μͺΌκ° μ¬μ¬μ© ν μ μλ κ΅¬μ‘°λ‘ κ°λ°νλ€.
Vue
μμ νλμ μ»΄ν¬λνΈλ HTML
+ CSS
+ JavaScript
λ‘ μ΄λ£¨μ΄μ Έμλ€.
2. Vue CLI π©βπ»
1. npm install
- local installation
npm install [library]
- global installation
npm install -g [library]
package.json
>dependencies
μ ν¨ν€μ§ μ μ‘°λ₯Ό λ±λ‘νλ©° μ€μΉ
npm install --save [library]
package.json
>devDependencies
μ ν¨ν€μ§ μ μ‘°λ₯Ό λ±λ‘νλ©° μ€μΉ
npm install --save-dev [library]
install
μi
λ‘,--save
λ-S
λ‘,--save-dev
λ-D
λ‘ μΆμ½ κ°λ₯νλ€
npm i -S [library]
npm i -D [library]
κ°κΈμ vue, vue/cli λ global λ‘ μ€μΉνμ
npm install -g vue@3.2.45 @vue/cli
2. Create App
JavaScript
μ npm init
, TypeScript
μ tsc --init
,
Angular
μ ng new [App Name]
μ²λΌ Vue
λ vue create [App Name]
μ
μ΄μ©ν΄ νλ‘μ νΈλ₯Ό μμ±ν μ μλ€.
vue create [App Name]
3. Run App
cd [App Name]
run npm serve -- --port [Port Number]
run npm serve --port [Port Number]
κ°μ§λ§run npm serve -- --port [Port Number]
λ€.
4. Vue Project Structures
App.vue
: Root Component- main.js: κ°μ₯ λ¨Όμ μ€νλλ
JavaScript
νμΌλ‘Vue
instance λ₯Ό μμ±νλ μν - node_modules: npm μΌλ‘ μ€μΉλ ν¨ν€μ§ νμΌλ€μ΄ λͺ¨μ¬ μλ λλ ν 리
- package.json: νλ‘μ νΈμ νμν package λ₯Ό μ μνκ³ κ΄λ¦¬
- package-lock.json: μ€μΉλ package μ dependency μ 보λ₯Ό κ΄λ¦¬
- public: webpack μ ν΅ν΄ κ΄λ¦¬λμ§ μλ static resources κ° λͺ¨μ¬ μλ λλ ν 리
- src/assets: images, css, fonts λ±μ κ΄λ¦¬νλ λλ ν 리
- src/components: Vue Components νμΌμ΄ λͺ¨μ¬ μλ λλ ν 리
5. package.json
- name: νλ‘μ νΈ μ΄λ¦
- version: νλ‘μ νΈ λ²μ μ 보
- private:
true
λ‘ μ€μ νλ©΄ νλ‘μ νΈλ₯Όnpm
μΌλ‘ μ¬λ¦΄ μ μμ΄npm
μ μ¬λ €λ λ°°ν¬κ° μ λλ€. - scripts: νλ‘μ νΈ μ€νκ³Ό κ΄λ ¨λ λͺ λ Ήμ΄λ₯Ό λ±λ‘
- dependencies: λ°°ν¬μ© ν¨ν€μ§ μ 보
- devDependencies: κ°λ°μ© ν¨ν€μ§ μ 보
- eslintConfig:
ESLint
μ€μ - browserlist: default λ‘ μ μΈκ³ μμ 1% μ΄μ μ¬μ© & μ΅μ λ²μ 2κ°κΉμ§ μ§μνλλ‘ μ€μ
6. Create App Manually
vue create [App Name]
μ ν ν Manually select features
λ₯Ό μ ννλ€.
- Babel: ES5 μ΄ν λ²μ νΈνμΌλ‘ Transpile
- TypeScript
- Progressive Web App (PWA) Support: μΉ μ± κ°λ°μ©
- Router
- Vuex:
Vue
μ μν κ΄λ¦¬λ₯Ό μν ν¨ν€μ§ - CSS Pre-processors:
Sass
,Less
,Stylus
λ±CSS
μμ±μ μνCSS
μ μ²λ¦¬κΈ° - Linter / Formatter:
JavaScript
Coding Convention (Standard Guide) - Unit Testing:
Mocha
λ± λ¨μ ν μ€νΈλ₯Ό μν λΌμ΄λΈλ¬λ¦¬ - E2E Testing:
End-to-End
ν΅ν© ν μ€νΈλ₯Ό μν νλ¬κ·ΈμΈ
μμ μμλ Babel
, Router
, Vuex
, Linter / Formatter
λ₯Ό μ ννλ€.
Vue
λ²μ μ3
Router history mode
λY
Eslint
λESLint + Standard config
,Lint on save
,In package.json
μ μ°¨λ‘λ‘ μ ννλ€.
κ·Έλ¦¬κ³ λ§μ§λ§μΌλ‘ ν΄λΉ μ€μ μ preset
μΌλ‘ μ μ₯ν κ²μΈμ§ 묻λλ€. μ μ₯μ μνλ©΄ μ΄λ¦μ μ§μ ν
μ μ₯νλ©΄ λ€μλΆν° μλμ κ°μ΄ νλ‘μ νΈλ₯Ό μμ±ν μ μλ€.
preset
μ΄λ¦μ vue basic
μΌλ‘ μ μ₯ν κ²½μ° λ€μκ³Ό κ°μ΄ vue create [App Name]
μ νμΈ κ°λ₯νλ€.
7. Vue Project Manager
Vue Project Manager
λ vue ui
λͺ
λ Ήμ΄λ₯Ό ν΅ν΄ μ€ννλ€.
μΉ νμ΄μ§λ₯Ό ν΅ν΄ νλ‘μ νΈλ₯Ό μμ±νκ³ κ΄λ¦¬ν μ μλ€.
Vue Project Manager
λ‘ μμ±νμ§ μκ³Vue CLI
λ‘λ§ μμ±ν νλ‘μ νΈλ νλ‘μ νΈ λ¦¬μ€νΈμ 보μ΄μ§ μλλ€.κ°μ Έμ€κΈ°
λ₯Ό ν΅ν΄ 맀λμ μ λ±λ‘ ν νμΈ κ°λ₯νλ€.
Reference
- κ³ μΉμ. Vue.js νλ‘μ νΈ ν¬μ μΌμ£ΌμΌ μ . λΉμ μ΄νΌλΈλ¦ Chapter 1, 2021.
- κ³ μΉμ. Vue.js νλ‘μ νΈ ν¬μ μΌμ£ΌμΌ μ . λΉμ μ΄νΌλΈλ¦ Chapter 2, 2021.
- κ³ μΉμ. Vue.js νλ‘μ νΈ ν¬μ μΌμ£ΌμΌ μ . λΉμ μ΄νΌλΈλ¦ Chapter 3, 2021.