라벨이 vue인 게시물 표시

Vue 첫 걸음

Vue 하나도 모르는 상태에서 vue를 시작하면 최근 Vue 프로젝트와 API 서버 프로젝트를 번갈아가며  기능 수정/개선 작업을 수행했다. 간단한 API 호출 코드 수정과 vue 라이브러리, 내장 v-디렉티브를 활용하여 조건과 데이터에 따라 일부 UI를 변경하는 정도까지는 할 수 있었지만  FE 프로젝트 자체를 0부터 쌓아올린 것은 아니기에 집에서 사이드 프로젝트를 진행하며 정리하려고한다. 요즘 프로젝트 구성 global 환경 node.js - npm (or yarn)은 vue 프로젝트 환경을 구축하기 전에 설치해야 할 소프트웨어이다. node.js는 브라우저에서만 작동할 수 있었던 JS를 자바스크립트 서버 환경에서 돌아갈 수 있게 한다.(로컬, 리모트) 크롬의 V8 자바스크립트 런타임 엔진을 기반으로 구축되었다. vite.js 웹팩과 같이 js파일을  덩어리를 묶는 대신 네이티비ㅡ ES 모듈 임포트 기능으로 모듈을 불러오는 JS 개발 서버이다. 이전 기본 툴에는 vue cli가 있으며 웹팩을 사용한다. vue 커뮤니티는 vue 프로젝트를 생성하고 관리하는 기본 툴로써 vue cli에서 Vite로 대체했다. ts 문제 최신 프론트엔드 프레임워크의 프로젝트에서는 주로 Typescript와 의존성, 배포 설정 파일들이 함께 사용된다. 타이핑을 통해 체계적이고 가독성 높은 코드를 작성할 수 있는 장점이 있다. 당장 ts를 사용할 수는 없었다. 당장 npm init vue@{vue 버전}을 통해 프로젝트를 초기화해도 Cannot find module './App.vue' or its corresponding type declarations 라는 에러를 마주할 수 있는데 Typescript와 vue를 혼용해서 사용할 때 당장 처음에는 TS가 App.vue의 타입을 인식하지 못하기 때문에 발생한다. .vue 모듈을 TS가 인식할 수 있는 타입으로 정의해 주어야 하는데 관례적으로 'shims-vue.d.ts' 라는 파일명에 정의한다. 이 파일...

Before coding in vue.js

UI 개발을 위한 Progressive Framework, vue.js "Progressive" of vue.js Web, 네이티브 앱(ios, android)의 이점을 모두 수용하여 표준적인 패턴으로 개발함. 제공하는 웹 사이트의 특징에 따라 개발 방식도 달라져야하기 때문. 데이터 지향 화면을 렌더링하는 구조 자체는 dom이 아니라 javascript다. 데이터가 먼저 존재하고 데이터를 기반으로 적절한 dom을 구축한다. Two way 데이터 바인딩 데이터와 렌더링을 동기화하는 구조를 가진다. UI 패턴이 많아지면 dom을 변경하는 코드가 많아진다. vue에서는 dom 변경 작업을 vue 프레임워크에 맡긴다. html dom과 데이터가 서로 양방향으로 연결되어 있어서 어느 한쪽에 변경이 일어나면, 다른 쪽에 자동으로 반영된다. 이를 통해 휴먼 에러와 코딩양 자체를 줄일 수 있다. v-directive 속성 가상 dom을 만들기 위한 템플릿 기법. Dom에 반영하기 전에 vue.js 프레임워크에 의해 컴파일 되고 내부적으로만 사용한다. ex) v-if, v-bind, key 데이터 바인딩과 관련된 처리를 실시한다. html속성과 다르게 v-디렉티브는 애플리케이션에 등록되어 있는 데이터 전용 객체의 속성을 나타낸다. Mount 배치할 요소와 애플리케이션을 연결하는 것. 컴포넌트 기능별로 html/js/css 세트로 구성할 수 있다. 컴포넌트를 조합하면 페이지를 구조화하여 만들 수 있다. vue.js를 통해 부품을 만들고 vuex를 통해 부품들로 구성된 페이지를 만들고 vue router를 통해 여러 개의 페이지를 관리한다. 가상dom 작은 변화가 발생 해도 DOM 트리 구조 모두 갱신하기보다, 추상화된 dom문서로부터 가상의 DOM에서 메모리에서 처리 후 실제 DOM과 동기화.(실제 DOM갱신) 1. 데이터 변경과 실제 dom변경 처리는 비동기적으로 이뤄진다.     dom조작을 최소한으로 유지하므로 렌더링 성능이 높다. 2. 그러나 dom 재...

이 블로그의 인기 게시물

실무진 면접 경험으로 정리하는 백엔드 (1) : 에듀 테크 기업 면접

노마드코더 개발자북클럽 Clean code 완주, 독후감

Blogger 커스터마이징 : CSS 수정 (sticky-header)