처음부터 vue.js를 배우고 싶습니까? Sitepoint Premium은 기본, 프로젝트, 팁 및 도구 등을 다루는 Vue 책을 완전히 제공합니다. 한 달에 $ 14.99에 가입하십시오.
이 기사는 업데이트되었으며 주로 도구 섹션을 업데이트했습니다.
v2의 인기있는 JavaScript 프레임 워크 vue.js 버전이 출시 된 이후, 나는 그것을 시도하고 그것이 어떻게 느끼는지 기다릴 수 없습니다. Angular and React에 매우 익숙한 사람으로서, 나는 그들과 Vue 사이의 유사점과 차이점을보기를 기대합니다.
VUE 2는 우수한 성능 메트릭, 비교적 작은 부하 (번들 링 런 타임 버전의 무게가 약 30kB이며 GZIP 압축 후 약 30KB) 및 Vue-Router 및 Vuex, VUE 라이브러리와 같은 지원 라이브러리의 상태 관리를 가지고 있습니다. 하나의 기사로 모든 것을 다루는 것은 너무 많지만 후속 기사에주의를 기울이면 핵심 프레임 워크와 완벽하게 통합 된 다양한 라이브러리를보다 신중하게 살펴 보겠습니다.
키 포인트
vue.js 2.0은 효율적인 렌더링을 위해 React-Inspired Virtual DOM을 소개하고 Vue-Router 및 Vuex와 같은 개선 된 라이브러리를 State Management를 통합합니다.
구성 요소는 vue.js 2.0의 기초이며, 여기서 응용 프로그램은 일련의 중첩 구성 요소에 내장되어 있으며 단일 파일 구성 요소 (.Vue)가 권장되어 코드를 더 잘 구성 할 수 있습니다.
vue 프로젝트를 처음부터 시작하려면 Webpack 및 Vue-Loader가 .Vue 파일을 처리하고 Babel은 현대식 JavaScript 기능을 사용하여 개발 워크 플로우를 향상시켜야합니다.
vue devtools는 디버깅에 필수적이며, 이는 응용 프로그램 상태와 구성 요소를 통한 데이터 흐름에 대한 통찰력을 제공합니다.
vue.js 2.0은 양방향 데이터 바인딩을 위해 V- 모델을 활용하고 사용자 정의 이벤트 처리에 V-ON을 사용하여 인터랙티브 형태의 구성을 용이하게하여 상태 관리가 구성 요소간에 매끄럽게 만듭니다.
이 기사에서는 VUE의 반응 시스템 및 수명주기 후크를 사용하여 데이터를 효과적으로 관리하고 표시하는 GitHub 사용자 통계 획득 애플리케이션을 구축하고 실제 시나리오에서 VUE.JS의 실제 사용을 보여줍니다.
다른 라이브러리에서 영감을
이 튜토리얼을 배우면 VUE에는 다른 프레임 워크에서 영감을 얻은 많은 기능이 있음을 알 수 있습니다. 이것은 좋은 일입니다. 새로운 프레임 워크가 다른 도서관의 아이디어를 이끌어 내고 개선하는 것을 보는 것이 좋습니다. 특히 VUE의 템플릿이 Angular의 템플릿에 매우 가깝지만 구성 요소 및 구성 요소 수명주기 접근 방식은 React (및 Angular)에 더 가깝습니다. 그러한 예는 오늘날의 JavaScript 필드의 React 및 거의 모든 프레임 워크와 마찬가지로 Vue가 Virtual DOM의 개념을 사용하여 렌더링 효율성을 유지한다는 것입니다. Vue는 가장 인기있는 가상 DOM 라이브러리 중 하나 인 Snabbdom의 지점을 사용합니다. VUE 웹 사이트에는 가상 DOM 렌더링에 대한 문서가 포함되어 있지만 사용자로서 VUE는 렌더링 속도를 유지하는 데 매우 능숙하다는 것을 알아야합니다 (실제로는 React보다 더 잘 수행됩니다). 신뢰할 수있는 플랫폼이 구축되고 있습니다.
구성 요소, 구성 요소, 구성 요소
오늘날 다른 프레임 워크와 마찬가지로 Vue의 핵심 빌딩 블록은 구성 요소입니다. 응용 프로그램은 최종 응용 프로그램을 생성하기 위해 서로 구축 된 일련의 구성 요소 여야합니다. vue.js는 한 단계 더 나아가서 .Vue 파일의 구성 요소를 정의한 다음 (짧은 시간에 커버 할 빌드 도구)가 해당 파일을 구문 분석 할 수 있음을 제안합니다 (필수는 아니지만). 이 기사의 목적은 VUE와 그 사용법을 완전히 탐색하는 것이기 때문에이 응용 프로그램 에이 컨벤션을 사용할 것입니다.
vue 파일은 다음과 같습니다
또는 구성 요소의 모든 부분을 단일 파일에 넣기를 원하지 않으면 각 요소에 각각 SRC 속성을 제공하고 각각 별도의 HTML, JS 또는 CSS 파일을 가리킬 수 있습니다.
설정 프로젝트
우수한 Vue CLI를 사용하면 전체 프로젝트를 쉽게 설정할 수 있지만 새 라이브러리로 시작할 때 처음부터 시작하여 이러한 도구에 대해 더 많이 배울 수 있습니다.
이제 WebPack은 선호하는 빌드 도구입니다. Vue-Loader 플러그인과 함께 사용할 수있는 vue.js 구성 요소 형식을 지원할 수 있습니다. 또한 Babel 및 Env 사전 설정이 필요하므로 Filed JavaScript 구문과 파일 변경이 감지 될 때 브라우저를 업데이트하는 WebPack-Dev-Server를 사용하여 모든 코드를 작성할 수 있습니다.
프로젝트를 초기화하고 종속성을 설치합시다 :
그런 다음 초기 폴더와 파일을 만듭니다
<template>
<p>This is my HTML for my component</p>
</template>
<🎜>
<style scoped>
/* CSS here
* by including `scoped`, we ensure that all CSS
* is scoped to this component!
*/
</style>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
프로젝트 구조는 다음과 같아야합니다
지금 웹 팩 구성을 설정하겠습니다. 이것은 다음과 같은 점으로 귀결됩니다 :
는 WebPack에게 .Vue 파일에 vue-loader <🎜
를 사용하도록 지시하십시오
Webpack에게 .js 파일 <🎜 🎜 🎜 🎜 🎜 🎜 🎜 <🎜 🎜 <🎜 🎜 🎜 🎜 <🎜 🎜 🎜 <🎜 🎜 <🎜 🎜 vabel 및 env 사전 설정을 사용하도록 지시하십시오.
는 WebPack에게 src/index.html을 템플릿으로 사용하여 Dev-Server를 위해 HTML 파일을 생성하여 서비스를 제공하도록 지시합니다.
마지막으로, 우리는 HTML 파일에 콘텐츠를 추가하고 시작할 수 있습니다!
우리는 앱의 ID로 빈 DIV를 만들었습니다. 이것이 VUE 앱을 배치 할 요소이기 때문입니다. 나는 항상 신체 요소보다는 div를 사용하는 것을 선호합니다. 이것은 나머지 페이지를 제어 할 수 있기 때문입니다.
첫 번째 vue.js 응용 프로그램 <🎜 🎜
우리는 이전의 모든 프로그래밍 튜토리얼에 충실하고 VUE 응용 프로그램을 작성하고 "Hello, World!" mkdir vue2-demo-project
cd vue2-demo-project
npm init -y
npm i vue
npm i webpack webpack-cli @babel/core @babel/preset-env babel-loader vue-loader vue-template-compiler webpack-dev-server html-webpack-plugin --save-dev
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
각 vue 응용 프로그램은 라이브러리를 가져온 다음 새 Vue 인스턴스를 인스턴스화하여 생성됩니다.<template>
<p>This is my HTML for my component</p>
</template>
<🎜>
<style scoped>
/* CSS here
* by including `scoped`, we ensure that all CSS
* is scoped to this component!
*/
</style>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
우리는 VUE를 페이지에 렌더링 할 요소를 제공하므로 VUE 응용 프로그램을 만듭니다! VUE가 응용 프로그램으로 바꾸려는 요소를 선택하기 위해 선택기를 전달합니다. 이것은 VUE가 실행되면 우리가 만든 Div#앱을 가져 와서 응용 프로그램으로 바꿀 것임을 의미합니다.
지금까지 우리의 앱은 아무것도하지 않으므로 첫 번째 구성 요소 인 app.vue를 만들어 실제로 페이지에 무언가를 렌더링합니다.
vue는 응용 프로그램의 구조를 지정하지 않으므로 귀하에게 달려 있습니다. 각 구성 요소에 대한 폴더를 만들었습니다.이 경우 앱 (캐피탈 레터를 좋아합니다. 이는 구성 요소를 의미합니다).
index.vue <🎜 🎜>
script.js <🎜 🎜>
style.css
파일 구조는 이제 다음과 같아야합니다
<..> app/index.vue 템플릿을 정의하고 다른 파일을 가져옵니다. 이것은 VUE 문서의 "우려 분리에 관한"섹션에 권장되는 구조에 적합합니다.
-
나는 INDEX.VUE의 이름을 지정하고 싶지만 쉽게 검색 할 수 있도록 App.Vue의 이름을 지정할 수도 있습니다. App/App.Vue 대신 내 코드에서 App/Index.vue를 가져 오는 것을 선호하지만 다시 동의하지 않을 수도 있으므로 귀하와 귀하의 팀을 가장 좋아하는 이름을 자유롭게 선택하십시오.
현재, 우리의 템플릿은 - 입니다
안녕하세요, 세상! <🎜 🎜>
, 나는 CSS 파일을 비워 두었다. 주요 작업은 Script.js에서 수행됩니다.
그렇게하는 것은 앱으로 이름을 지정할 구성 요소를 만듭니다. 앱은 주로 디버깅 목적으로 나중에 다룰 것입니다. 그런 다음 구성 요소가 소유하고 책임이있는 데이터를 정의합니다. 현재 우리는 데이터가 없으므로 빈 개체를 반환하여 Vue에게 알 수 있습니다. 나중에 데이터를 사용하는 구성 요소의 예가 표시됩니다. -
이제 우리는 src/index.js로 돌아가서 vue 인스턴스에 앱 구성 요소를 렌더링하도록 알릴 수 있습니다.
먼저, 우리는 구성 요소를 가져오고 웹팩과 vue-loader가 그것을 파싱 할 책임이 있다고 생각합니다. 그런 다음 구성 요소를 선언합니다. 이것은 중요한 단계입니다. 기본적으로 VUE 구성 요소는 전 세계적으로 사용할 수 없습니다. 각 구성 요소에는 사용할 모든 구성 요소 목록과 매핑되는 태그가 있어야합니다. 이 경우, 우리는 다음과 같이 구성 요소를 등록하기 때문에 다음과 같이합니다.
이것은 템플릿에서 앱 요소를 사용하여 구성 요소를 참조 할 수 있음을 의미합니다. mkdir vue2-demo-project
cd vue2-demo-project
npm init -y
npm i vue
npm i webpack webpack-cli @babel/core @babel/preset-env babel-loader vue-loader vue-template-compiler webpack-dev-server html-webpack-plugin --save-dev
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
마지막으로 렌더링 함수를 정의합니다. 이 기능은 요소를 생성 할 수있는 도우미 (일반적으로 H라고 함)를 사용합니다. React에서 사용하는 React.createElement 함수와 그다지 유사하지 않습니다. 이 경우 렌더링중인 구성 요소가 태그 앱이있는 것으로 등록되기 때문에 문자열 '앱'을 제공합니다.
대부분의 경우 (그리고이 자습서의 나머지 부분에서) HTML 템플릿을 정의하기 때문에 다른 구성 요소의 렌더 기능을 사용하지 않습니다. 그러나 더 많은 것을 배우려면 렌더링 함수에 대한 vue.js 가이드를 읽을 가치가 있습니다.
마지막 단계는 Package.json에서 NPM 스크립트를 만드는 것입니다.
이제 NPM 실행 시작을 실행하십시오. 기본 브라우저는
https://www.php.cn/link/03b0db8c971432a5e8d1638976a7cc <🎜에서 열려야합니다.
src/index.vue 편집을 시도하여 메시지를 다른 것으로 변경하십시오. 모든 것이 잘 진행되면 Webpack-Dev-Server가 페이지를 새로 고쳐서 변경 사항을 반영해야합니다.
<template>
<p>This is my HTML for my component</p>
</template>
<🎜>
<style scoped>
/* CSS here
* by including `scoped`, we ensure that all CSS
* is scoped to this component!
*/
</style>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
대단해! 우리는 vue.js를 사용하여 실행 중입니다.
vue devtools <🎜 🎜>
우리가 약간 더 복잡한 VUE 응용 프로그램을 파헤 치기 전에 Vue DevTools를 확실히 설치해야한다고 언급 할 때입니다. 이들은 Chrome 개발자 도구에 위치하고있어 애플리케이션 및 모든 전달 된 속성, 각 구성 요소가 보유한 상태 등을 볼 수있는 좋은 방법을 제공합니다.
<<>
<<> 응용 프로그램을 구축하십시오
샘플 애플리케이션으로서 GitHub API를 사용하여 응용 프로그램을 작성하고 사용자 이름을 입력하고 해당 사용자의 GitHub 통계를 보자. 나는 대부분의 사람들에게 친숙하고 인증없이 사용할 수 있으며 많은 정보를 제공하기 때문에 여기에서 Github API를 선택했습니다.
응용 프로그램을 시작하기 전에 필요한 구성 요소에 대해 신속하게 생각하고 싶습니다. 앱 구성 요소는 다른 두 구성 요소 인 Githubinput을 렌더링 할 것이라고 생각합니다. Githubinput은 사용자로부터 입력을 수신하는 데 사용됩니다. 화면 정보. 우리는 입력부터 시작합니다.
<🎜 🎜> <<> 참고 : GitHub에서 모든 코드를 찾을 수 있으며 온라인에서 실행되는 응용 프로그램을 볼 수도 있습니다. <<>
<<> 초기 설정 <🎜 🎜>
SRC 디렉토리에서 githuboutput 및 githubinput 구성 요소 용 폴더 생성 :
각 폴더에 필요한 파일을 추가하십시오
<<> src 폴더의 구조는 이제 다음과 같습니다.
vue.js에서 형태
Githubinput 구성 요소부터 시작하겠습니다. 앱 구성 요소와 마찬가지로 index.Vue 파일에는로드 스크립트 및 CSS 파일뿐만 아니라 템플릿이 포함되어야합니다. 현재 템플릿에는
만 포함됩니다
github 입력
. 곧 올바르게 작성하겠습니다. 새로운 구성 요소를 만들 때 템플릿이 올바르게 연결되어 있는지 확인할 수 있도록 가상 HTML을 넣고 싶습니다.
<template>
<p>This is my HTML for my component</p>
</template>
<🎜>
<style scoped>
/* CSS here
* by including `scoped`, we ensure that all CSS
* is scoped to this component!
*/
</style>
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
이 구성 요소를 만들 때 다르게하는 일은 구성 요소와 관련된 데이터 스 니펫을 만드는 것입니다. 이것은 React의 상태 개념과 매우 유사합니다.
이것은이 구성 요소에 소유하고 책임이있는 데이터가 있다는 것을 의미합니다. 우리는 곧 사용자 입력을 기반으로 업데이트 할 것입니다.
마지막으로,이 구성 요소를 화면에 넣으려면 앱 구성 요소가 렌더링되므로 앱 구성 요소에 등록해야합니다. mkdir vue2-demo-project
cd vue2-demo-project
npm init -y
npm i vue
npm i webpack webpack-cli @babel/core @babel/preset-env babel-loader vue-loader vue-template-compiler webpack-dev-server html-webpack-plugin --save-dev
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
이를 위해 Src/App/Script.js를 업데이트하고 githubinput을 알려줍니다.
그런 다음 앱 구성 요소의 템플릿을 업데이트 할 수 있습니다.
vue 구성 요소의 한 가지 제한 (각도 및 반응에서는) 각 구성 요소가 루트 노드가 있어야한다는 것입니다. 일반적인 것은 div입니다.
트랙 형식 입력 <🎜 🎜>
우리의 githubinput 구성 요소는 두 가지를 수행해야합니다
입력의 현재 값 추적 <🎜 🎜>
는 다른 구성 요소가 결과적으로 자신의 상태를 알고 업데이트 할 수 있도록 값이 변경되었음을 전달합니다.
입력 요소가 포함 된 양식을 작성하여 첫 번째 버전을 완성 할 수 있습니다. VUE의 내장 지시문을 사용하여 양식 값을 추적 할 수 있습니다. Githubinput의 템플릿은 다음과 같습니다
mkdir src
touch webpack.config.js src/index.html src/index.js
로그인 후 복사
로그인 후 복사
로그인 후 복사
당신은 두 가지 중요한 속성이라는 것을 알게 될 것입니다 : V-on과 v-model.
v-on은 우리가 VUE의 DOM 이벤트에 바인딩하고 호출 함수를 바인딩하는 방법입니다. 예를 들어,
<<> 나를 클릭하십시오! <🎜 🎜>
단락을 클릭 할 때마다 구성 요소의 foo 메소드가 호출됩니다. 이벤트 처리에 대해 자세히 알아 보려면 이벤트 처리에 대한 Vue의 문서를 적극 권장합니다. V- 모델은 양식 입력과 데이터 사이에 양방향 데이터 바인딩을 만듭니다. 무대 뒤에서 V-Model은 실제로 VUE 구성 요소의 양식 입력 및 데이터 업데이트에 대한 변경 이벤트를 듣고 있습니다. <code>.
├── package.json
├── package-lock.json
├── src
│ ├── index.html
│ └── index.js
└── webpack.config.js</code>
로그인 후 복사
위의 템플릿을 고려할 때 V-ON 및 V- 모델을 사용하여 데이터를 양식으로 처리하는 방법은 다음과 같습니다.
v-on : 제출 .prevent = "onsubmit"은 onsubmit을 형성하기 위해 메소드를 바인딩 할 때 onsubmit을 실행합니다. .prevent를 추가함으로써 VUE는 기본 조치가 자동으로 발생하는 것을 방지합니다. (VUE 가이 작업을 수행하지 않으면 코드에서 event.preventDefault ()를 호출 할 수 있지만 VUE의 기능을 활용할 수도 있습니다.)
v-model : 사용자 이름 입력 된 값을 코드의 값 사용자 이름에 바인딩합니다. Angular에 익숙한 사람들에게는 이것이 NG 모델과 매우 유사하다는 것을 알 수 있습니다. githubinput을 만들 때 우리는 데이터를 입력 필드에 바인딩하는 데이터 사용자 이름이 있다고 선언합니다. 둘 다 자동으로 동기화됩니다.
위 내용은 vue.js 2.0 프레임 워크와 함께 일어나서 달리기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!