가이드
필수요소
- 설치방법
- 시작하기
- Vue 인스턴스
- 템플릿 문법
- computed와 watch
- 클래스와 스타일 바인딩
- 조건부 렌더링
- 리스트 렌더링
- 이벤트 핸들링
- 폼 입력 바인딩
- 컴포넌트
컴포넌트 톺아보기
- 컴포넌트 등록
- Props
- 커스텀 이벤트
- 슬롯(Slots)
- 동적 & 비동기 컴포넌트
- 예외적인 상황들
트랜지션 & 애니메이션
- 진입/진출 그리고 리스트 트랜지션
- 상태 트랜지션
재사용 & 컴포지션
- 믹스인
- 사용자 지정 디렉티브
- Render Functions & JSX
- 플러그인
- 필터
도구
- 싱글 파일 컴포넌트
- 단위 테스팅
- TypeScript 지원
- 프로덕션 배포 팁
스케일링 업
- 라우팅
- 상태 관리
- 서버사이드 렌더링
- 보안
내부
- 반응형에 대해 깊이 알아보기
마이그레이션1
- Vue 1.x에서 마이그레이션
- Vue Router 0.7.x으로 부터 마이그레이션
- Vuex 0.6.x에서 1.0로 마이그레이션
메타
- 다른 프레임워크와의 비교
- Vue.js 커뮤니티에 참여하세요!
- 팀 구성원 만나기
프로덕션 배포 팁
Most of the tips below are enabled by default if you are using Vue CLI. This section is only relevant if you are using a custom build setup.
프로덕션 모드를 켜세요
개발 과정에서 Vue는 일반적인 오류 및 함정을 해결하는 데 도움이 되는 많은 경고를 제공합니다. 그러나 이러한 경고 문자열은 프로덕션에서는 쓸모 없으며 앱의 페이로드 크기를 키웁니다. 또한 이러한 경고 검사 중 일부는 프로덕션 모드에서 피할 수 있는 런타임 비용이 적습니다.
빌드 도구를 사용하지 않는 경우
전체 빌드를 사용하는 경우 (즉, 빌드 도구 없이 스크립트 태그를 통해 Vue를 직접 포함하는 경우) 프로덕션 환경을 위해 축소 버전(vue.min.js
)을 사용해야합니다. 두가지 버전 모두 설치 안내
빌드 도구를 사용하는 경우
Webpack이나 Browserify와 같은 빌드 툴을 사용할 때, 프로덕션 모드는 Vue의 소스 코드 안에있는 process.env.NODE_ENV
에 의해 결정 될 것이며, 기본적으로 개발 모드가 될 것입니다. 두 빌드 도구 모두 이 변수를 덮어 쓸 수있는 방법을 제공하여 Vue의 프로덕션 모드를 사용할 수있게하고 빌드하는 동안 minifier가 경고를 제거합니다. 모든 vue-cli
템플릿에는 다음과 같은 것들이 미리 설정 되어 있습니다. 그러나 그것이 어떻게 처리되는지 아는 것은 유익할 것입니다.
Webpack
Webpack 4+에서는 mode
옵션을 사용할 수 있습니다.
|
하지만, Webpack 3 과 그 이전 버전에서는 DefinePlugin사용 이 필요합니다.
|
Browserify
"production "
으로 설정된 실제NODE_ENV
환경 변수로 번들링 명령을 실행하십시오. 이렇게 하면 핫 리로드 및 개발 관련 코드가 포함되지 않도록vueify
에 알립니다.번들에 전역 envify 변형을 적용하십시오. 이렇게하면 minifier가 env 변수 조건부 블록에 래핑 된 Vue 소스 코드의 모든 경고를 제거 할 수 있습니다.
NODE_ENV=production browserify -g envify -e main.js | uglifyjs -c -m > build.js
또는 Gulp와 envify를 함께 사용할 수 있습니다.
// envify 사용자 정의 모듈을 사용하여 환경 변수 지정
var envify = require('envify/custom')
browserify(browserifyOptions)
.transform(vueify)
.transform(
// node_modules 파일을 처리하기 위해 필요합니다.
{ global: true },
envify({ NODE_ENV: 'production' })
)
.bundle()Or, using envify with Grunt and grunt-browserify:
// Use the envify custom module to specify environment variables
var envify = require('envify/custom')
browserify: {
dist: {
options: {
// Function to deviate from grunt-browserify's default order
configure: b => b
.transform('vueify')
.transform(
// Required in order to process node_modules files
{ global: true },
envify({ NODE_ENV: 'production' })
)
.bundle()
}
}
}Rollup
rollup-plugin-replace을 사용하세요.
|
사전 컴파일한 템플릿
DOM 안의 템플릿 또는 JavaScript 안의 템플릿 문자열을 사용하면 템플릿에서 렌더 함수로의 컴파일이 즉시 수행됩니다. 일반적으로 대부분의 경우 속도가 빠르지만 애플리케이션이 성능에 민감한 경우에는 사용하지 않는 것이 가장 좋습니다.
템플릿을 미리 컴파일하는 가장 쉬운 방법은 싱글 파일 컴포넌트를 사용하는 것입니다. 관련 빌드 설정은 자동으로 사전 컴파일을 수행하므로 내장 코드에 원시 템플릿 문자열 대신 이미 컴파일 된 렌더링 함수가 포함되어 있습니다.
Webpack을 사용하고 JavaScript 및 템플릿 파일을 분리하는 것을 선호하는 경우에 vue-template-loader를 사용하여 템플릿 파일을 JavaScript로 변환할 수 있습니다 빌드 단계 중 렌더 함수를 수행합니다.
컴포넌트의 CSS 추출하기
싱글 파일 컴포넌트를 사용할 때, 컴포넌트 내부의 CSS는 JavaScript를 통해 <style>
태그로 동적으로 삽입됩니다. 런타임 비용이 적고, 서버 측 렌더링을 사용하는 경우 “스타일이없는 내용의 깜빡임”이 발생합니다. 모든 컴포넌트에서 CSS를 같은 파일로 추출하는 것은 이러한 문제를 피할 수 있고, CSS 축소 및 캐싱을 향상시킬 수 있습니다.
이를 적용하려면 해당 빌드 도구 문서를 참조하십시오.
- Webpack + vue-loader (
vue-cli
의 webpack 템플릿은 이미 이 설정이 되어 있습니다) - Browserify + vueify
- Rollup + rollup-plugin-vue
런타임 에러 추적하기
구성 요소의 렌더링 중에 런타임 오류가 발생하면 전역 Vue.config.errorHandler
config 함수로 전달됩니다. 이 훅을 공식적인 통합을 제공하는 Sentry와 같은 오류 추적 서비스와 함께 활용하면 좋습니다.