Vue.js는 깃허브에서 ‘가장 인기 있는 자바스크립트 프레임워크’로 꼽힐 만큼 많은 주목을 받고 있는 기술입니다. 《Vue.js 철저 입문》에서는 프런트 엔드 특화 라이브러리 중에서 가장 큰 지지를 받는 Vue.js를 중심으로 현대적인 프런트 엔드 개발을 경험해 볼 수 있게 구성했습니다.
사용하기 쉽고 현업에서 많이 사용되는 Vue.js를 Vue.js 코어 팀 멤버가 기초부터 알기 쉽게 직접 설명했으며 실무에서 활용할 수 있는 설계 능력 및 업무 능력을 익힐 수 있게 도와줍니다. 소규모 프로젝트에 적용하는 예부터 jQuery에서 이주하는 방법, 대규모 개발을 염두에 둔 애플리케이션 개발 방법까지 이 책 한권으로 기초부터 실무까지 철저하게 배울 수 있습니다.
저자소개
저자 : 카와구치 카즈야 Vue.js 코어 팀 멤버. 오픈 소스 소프트웨어 활동과 함께 일본 Vue.js 사용자 그룹의 대표를 맡아 커뮤니티를 운영 중이다. i18n에 열광하기도 한다. 웹 프런트 엔드 기술 외에도 웹 어셈블리 등 관심 있는 웹 기술 동향을 좇는 것이 취미다. 풀타임 오픈 소스 개발자로서 사는 삶을 모색 중이다. 이 책의 1장, 6장, 8장, 9장, 10장, 부록 B와 C를 집필했고 전반적인 내용의 감수를 맡았다.
저자 : 키타 케이스케 LINE 주식회사에서 자바스크립트를 중심으로 하는 클라이언트 구현을 담당하고 있다. Vue.js의 유연함에 이끌려 업무와 취미에서 골고루 활용 중이다. 이 책에서는 2장, 5장, 부록 A를 집필했다.
저자 : 노다 요헤이 IBM의 전자 디스커버리 소프트웨어 개발에서 QA 및 프런트 엔드 엔지니어로 약 5년간 근무했다. 이후 주식회사 플레이드에서 CX(고객 경험) 플랫폼인 KARTE를 개발 중이다. 이 책에서는 3장의 집필을 맡았다.
저자 : 테지마 타쿠야 IBM와 LINE에서 주로 웹 프로덕트 개발을 7년간 수행했다. 이후 UPSTAY에 공동 창업자 겸 CTO로 참여해 성공적인 엑시트를 경험했다. 현재는 엔지니어를 위한 사무소 GAO GAO Asia를 창립해 대표를 맡고 있다. 이 책에서는 4장을 집필했다.
저자 : 카타야마 신야 Vue.js 코어 팀 멤버로서 주로 Vue.js 개발 및 주변 라이브러리 개발 지원에 공헌했다. 정적 타이핑 및 정적 코드 분석에 관심이 있어 이들을 활용한 개발 환경 개선을 모색하고 있다. UI 및 사용자 인터랙션에도 관심이 많다. 이러한 활동의 일환으로 CSS 스터디를 운영 중이다. 이 책에서는 7장과 부록 B.3의 집필을 맡았다.
역자 : 심효섭 연세대학교 문헌정보학과를 졸업하고 모교 중앙도서관과의 인연으로 도서관 솔루션 업체에서 일하면서 개발을 시작했다. 네이버에서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝에 대한 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고도 지속 가능한 삶이다. 옮긴 책으로 『도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문』 『PyTorch를 활용한 강화학습/심층강화학습 실전 입문』 『PyTorch를 활용한 머신러닝, 딥러닝 철저 입문』 『딥러닝 제대로 시작하기』 『그림과 수식으로 배우는 통통 딥러닝』 등이 있다.
목차
▣ 01장: 프로그레시브 프레임워크 Vue.js 1.1 복잡해진 모던 웹 프런트 엔드 개발 __1.1.1 웹의 탄생과 웹 기반 시스템의 발전 __1.1.2 Ajax의 등장 __1.1.3 HTML5, Node.js, ES2015, React 이후의 세계 __1.1.4 현재의 당면 과제와 Vue.js 1.2 Vue.js의 특징 __1.2.1 낮은 학습 비용 __1.2.2 컴포넌트 지향을 통한 UI 구조화 __1.2.3 리액티브 데이터 바인딩 1.3 Vue.js의 설계 사상 __1.3.1 프레임워크의 복잡성 __1.3.2 요구사항의 변화를 수용할 수 있는 프레임워크 1.4 프로그레시브 프레임워크가 제공하는 단계적 영역 __1.4.1 선언적 렌더링(declaritive rendering) __1.4.2 컴포넌트 시스템 __1.4.3 클라이언트 사이드 라우팅 __1.4.4 대규모 상태 관리 __1.4.5 빌드 시스템 __1.4.6 클라이언트-서버 데이터 퍼시스턴스 1.5 Vue.js의 기반 기술 __1.5.1 컴포넌트 시스템 __1.5.2 리액티브 시스템 __1.5.3 렌더링 시스템 1.6 Vue.js 생태계 1.7 Vue.js 첫걸음
▣ 02장: Vue.js의 기본 사용법 2.1 Vue.js로 UI를 개발하려면 어떤 방식으로 생각해야 하는가 __2.1.1 기존 UI 개발의 문제점 __2.1.2 Vue.js를 이용한 UI 개발 2.2 Vue.js 도입하기 2.3 Vue 객체 __2.3.1 생성자 __2.3.2 컴포넌트 2.4 Vue 인스턴스 마운트하기 __2.4.1 Vue 인스턴스의 적용(el) __2.4.2 메서드를 이용한 마운트($mount 메서드) 2.5 UI 데이터 정의(data) __2.5.1 Vue 인스턴스 확인하기 __2.5.2 데이터 변경 탐지하기 2.6 템플릿 문법 __2.6.1 텍스트로 전개하기 __2.6.2 속성값 전개하기 __2.6.3 자바스크립트 표현식 전개하기 2.7 필터 2.8 계산 프로퍼티(computed) __2.8.1 this 참조하기 __2.8.2 예제 애플리케이션 구현하기 2.9 디렉티브 __2.9.1 조건에 따른 렌더링(v-if, v-show) __2.9.2 클래스와 스타일 연결하기 __2.9.3 리스트 렌더링하기(v-for) __2.9.4 이벤트 핸들링(v-on) __2.9.5 폼 입력 바인딩(v-model) 2.10 생애주기 훅 __2.10.1 생애주기 훅의 종류와 호출 시점 __2.10.2 created 훅 __2.10.3 mounted 훅 __2.10.4 beforeDestroy 훅 2.11 메서드 __2.11.1 이벤트 객체 __2.11.2 예제에 메서드 호출 적용하기
▣ 03장: 컴포넌트의 기초 3.1 컴포넌트란 무엇인가? __3.1.1 모든 것은 UI 컴포넌트로 __3.1.2 컴포넌트의 장점과 주의할 점 __3.1.3 Vue.js의 컴포넌트 시스템 3.2 Vue 컴포넌트 정의하기 __3.2.1 전역 컴포넌트 정의하기 __3.2.2 생성자를 사용해서 컴포넌트 정의하기 __3.2.3 지역 컴포넌트 정의하기 __3.2.4 템플릿을 만드는 그 외의 방법 __3.2.5 컴포넌트 생애주기 __3.2.6 컴포넌트 데이터 3.3 컴포넌트 간 통신 __3.3.1 부모 컴포넌트에서 자식 컴포넌트로 데이터 전달하기 __3.3.2 자식 컴포넌트에서 부모 컴포넌트로 데이터 전달하기 3.4 컴포넌트 설계 __3.4.1 컴포넌트를 분할하는 원칙 __3.4.2 컴포넌트 설계하기 __3.4.3 슬롯 콘텐츠를 살린 헤더 컴포넌트 구현하기 __3.4.4 로그인폼 컴포넌트 구현하기
▣ 04장: Vue Router를 활용한 애플리케이션 개발 4.1 Vue Router를 이용한 단일 페이지 애플리케이션 __4.1.1 Vue Router란 무엇인가 4.2 기초 라우팅 __4.2.1 라우터 설치하기 __4.2.2 라우팅 설정 4.3 실용적인 라우팅을 구현하기 위한 기능 __4.3.1 URL 파라미터를 처리하는 방법과 패턴 매칭 __4.3.2 이름을 가진 라우트 __4.3.4 router.push를 사용한 페이지 이동 __4.3.4 훅 함수 4.4 예제 애플리케이션 구현하기 __4.4.1 리스트 페이지 구현하기 __4.4.2 API와 통신하기 __4.4.3 상세 정보 페이지 구현하기 __4.4.4 사용자 등록 페이지 구현하기 __4.4.5 로그인/로그아웃 구현하기 __4.4.6 예제 애플리케이션 전체 코드 4.5 Vue Router의 고급 기능 __4.5.1 Router 인스턴스와 Route 객체 __4.5.2 중첩 라우팅 __4.5.3 리다이렉션과 앨리어싱 __4.5.4 히스토리 관리
▣ 05장: Vue.js의 고급 기능 5.1 트랜지션 애니메이션 __5.1.1 transition 래퍼 컴포넌트 __5.1.2 트랜지션 클래스 __5.1.3 fade 트랜지션 구현하기 __5.1.4 자바스크립트 훅 5.2 슬롯 __5.2.1 단일 슬롯 __5.2.2 이름을 갖는 슬롯 __5.2.3 슬롯의 범위 5.3 사용자 정의 디렉티브 __5.3.1 사용자 정의 디렉티브 정의하기 __5.3.2 디렉티브 정의 객체 __5.3.3 훅 함수의 인자 __5.3.4 image-fallback 디렉티브에 기능 추가하기 5.4 렌더링 함수 __5.4.1 렌더링 함수 없이는 구현이 까다로운 사례 __5.4.2 렌더링 함수의 효율성 __5.4.3 createElement 함수 5.5 믹스인 __5.5.1 믹스인으로 기능 재사용하기 __5.5.2 전역 믹스인
▣ 06장: 단일 파일 컴포넌트를 활용한 개발 6.1 필요한 도구 설치하기 __6.1.1 Vue CLI 6.2 단일 파일 컴포넌트란? 6.3 단일 파일 컴포넌트의 형식 __6.3.1 블록 __6.3.2