본문 바로가기

분류 전체보기

[Vue.js] Options API vs Composition API Vue3 에서 애플리케이션을 만들 수 있는 방법은 크게 2가지가 있습니다. 1️⃣ vue2 에서 사용해왔던 Options API 2️⃣ vue3 에서 새롭게 등장한 Composition API Vue2에서는 Options API 의 단점을 보완하기 위해 Composition API 가 등장했으며, Vuu3에서는 Composition API 를 권장하고 있다. Options API vs Composition API 비교 Options API data, methods, mounted 와 같은 옵션을 사용한다. Composition API 반응형 코드를 작성하는 단일 setup 함수가 있다. Compositions API는 옵션(data, methods, mounted ...) 을 선언하는 대신 가져온 함수 .. 더보기
[모던자바스크립트 DeepDive] 40장 이벤트 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. 이벤트 드리븐 프로그래밍 브라우저는 스스로 감지해서 특정 사건이 발생하면 해당 이벤트를 발생시킨다. 특정 이벤트에 대해 어떤 일을 하고 싶다면 우리는 브라우저에게 특정 이벤트가 발생 했을 때 호출될 함수를 알려주어 브라우저에게 호출을 위임한다 왜냐하면 우리는 특정 이벤트가 언제 발생할지 알 수 없으므로, 이벤트를 감지할 수 있는 브라우저에게 전적으로 위임하는 것 이벤트 핸들러 : 이벤트가 발생했을 때 호출될 함수 이벤트 핸들러 등록 : 브라우저에게 이벤트 핸들러의 호출을 위임하는 것 이벤트와 이벤트 핸들러를 통해 사용자와 애플리케이션은 상호작용한다 프로그램의 흐름을 이벤트 중심으로 제어하는 프로그.. 더보기
[모던자바스크립트 DeepDive] 42장 비동기 프로그래밍 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. 동기와 비동기 동기 순차적으로 실행하는 것을 의미하며, 현재 실행 중인 태스크가 종료될 때까지 대기하는 방식을 의미한다. 비동기 실행순서와 상관없이 실행하는 것을 의미하며, 현재 실행 중인 태스크가 종료되기 전에 다음 태스크를 실행하는 것을 의미한다. 블로킹과 논블로킹 블로킹 동기처리로 인해서 다음 태스크의 실행이 중지되는 현상 논블로킹 비동기처리로 인해서 다음 태스크의 실행을 바로하는 것 📙 콜 스택 실행 컨텍스트 스택을 의미하며, 현재 실행중인 함수들이 실행 순서대로 들어가서 실제로 실행되게 해주는 자료구조이다. 📙 태스크 큐 비동기 함수의 콜백함수들이 임시적으로 보관되는 영역이다. 📙 이벤트.. 더보기
[모던자바스크립트 DeepDive] 37장 Set과 Map 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. Set Set 객체는 중복되지 않는 유일한 값들의 집합이다. Set 객체는 배열과 유사하지만 차이가 있다. 구분 배열 Set 객체 동일한 값을 중복하여 포함할 수 있다 ⭕️ ❌ 요소 순서에 의미가 있다 ⭕️ ❌ 인덱스로 요소에 접근 할 수 있다. ⭕️ ❌ 📙 Set 객체의 생성 Set 객체는 Set 생성자 함수로 생성한다. 인수를 전달하지 않으면 빈 Set 객체가 생성된다. Set 생성자 함수는 이터러블을 인수로 전달받아 Set 객체를 생성한다. 이때, 이터러블의 중복된 값은 Set 객체에 요소로 저장되지 않는다. const set1 = new Set([1, 2, 3, 3]); console.lo.. 더보기
[Vue.js] 컴포넌트에 대해 HTML -> Vue 로 변환해서 컴포넌트의 이점을 알아보자. 컴포넌트란? 컴포넌트를 왜 사용? 컴포넌트는 어떻게 사용? 컴포넌트 정의 ➜ 컴포넌트 등록 ➜ 컴포넌트 사용 컴포넌트 시스템이란? 컴포넌트 (Component) 자바스크립트에서 재사용할 수 있도록 코드를 분리한 파일을 모듈이라고 한다. Vue 에서도 UI(HTML, CSS, JS) 를 재사용할 수 있도록 정의한 것을 컴포넌트라고 한다. 📌 JavaScript 코드를 재사용하는 모듈과 다르게, 컴포넌트는 JavaScript 뿐만 아니라 HTML, CSS 도 함께 캡슐화하여 재사용이 가능하게 한다. 컴포넌트를 사용하는 이유 컴포넌트를 사용하면 UI를 재사용할 수 있다. ➜ 프론트엔드 개발을 하다보면 JavaScript 뿐만 아니라 HTML, CS.. 더보기
[모던자바스크립트 DeepDive] 35. 스프레드 문법 & 36. 디스트럭쳐링 할당 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. 스프레드 문법 간단하게 요소를 개별적으로 분리하거나 합쳐주는 문법이다 기본적으로 이터러블에 사용이 가능하다 사용 가능한 곳 - 함수 호출문의 인수 - 배열 리터럴 - 객체 리터럴 내부 ( 이터러블 아니어도 사용가능 ) console.log(...[1,2,3]);// 1, 2, 3 console.log(..."str");// "s", "t", "r" console.log(...{ 0: "a", 1: "b" });// error // 1. 함수 호출문의 인수 function foo(...args){ console.log(args);// [1, 2, 3] } foo(...[1, 2, 3]); // 2... 더보기
[모던자바스크립트 DeepDive] 34. 이터러블 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. 이터러블 이터러블이란 이터러블 프로토콜을 준수하는 객체다. 이터러블이면 for ~ of, spread operator, destructuring가 사용 가능하다. 📙 이터러블 프로토콜 Symbol.iterator를 프로퍼티 키로 사용한 메서드를 구현하거나 프로토타입 체인을 통해 상속받고, 그 함수를 호출하면 이터레이터 프로토콜에 준수한 이터레이터를 반환하는 것을 이터러블 프로토콜이라고 한다 📙 이터레이터 프로토콜 위에서 말한 반환한 이터레이터가 next()를 소유하며, next()는 value와 done프로퍼티를 가지는 객체를 반환하는 것을 이터레이터 프로토콜이라고 한다 이 이터레이터는 요소를 탐.. 더보기
[모던자바스크립트-DeepDive]39장 DOM 본 글은 자바스크립트 스터디를 진행하면서 [모던자바스크립트 DeepDive] 책을 바탕으로 작성된 글입니다. 📌 브라우저의 렌더링 엔진은 HTML 문서를 파싱하여 브라우저가 이해할 수 있는 자료구조인 DOM을 생성한다 DOM 은 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료 구조이다 노드 📙 HTML 요소와 노드 객체 HTML 요소는 HTML 문서를 구성하는 개별적인 요소를 의미한다 렌더링 엔진에 의해 파싱되어 DOM을 구성하는 요소 노드 객체로 변환된다 이때, HTML 요소의 어트리뷰트는 어트리뷰트 노드로, HTML 요소의 텍스트 컨텍츠는 텍스트 노드로 변한다 ✅ HTML 요소간의 부자 관계를 반영해 HTML 요소를 객체화한 모든.. 더보기
[javascript] 웹UI를 만들어보며 공부하는 자바스크립트 문법 🌈 자바스크립트는 HTML 조작을 위해 사용 자바스크립트는 "html 조작과 변경" 을 담당하는 언어이다. 왜 조작을 하냐? - 탭, 모달 등 웹페이지 UI 만들 수 있음 - 유저가 입력한 데이터를 검사할 수 있음 - 유저가 버튼 누르면 서버로 데이터 요청 할 수 있음 📕 html 조작, 변경하려면 안녕하세요 자바스크립트 코드를 짜고 싶으면 알림창열기() 라고 쓸 때마다 function 안에 있는 긴 코드가 실행된다 ✅ 함수 이름 작성 시 - open_alert() 이런거 쓰면 안됨 - openAlert() 이렇게 붙여서 쓰는게 자바스크립트 관습 (일명 camelCase) 🌈 function의 파라미터 문법 function 알림창열기(파라미터){ document.getElementById('alert'.. 더보기
[Vue.js] 뷰 컴포넌트 컴포넌트란 조합하여 화면을 구성할 수 있는 블록(화면의 특정 영역)을 의미 컴포넌트를 활용하면 화면을 빠르게 구조화하여 일괄적인 패턴으로 개발할 수 있다 재사용성 직관적 이해 뷰에서는 웹 화면을 구성할 때 흔히 사용하는 네비게이션 바, 테이블, 리스트, 인풋 박스 등과 같은 화면 구성 요소들을 잘게 쪼개어 컴포넌트로 관리 컴포넌트 등록하기 📌 전역(Global) 컴포넌트 등록 여러 인스턴스에 공통으로 사용할 수 있다 뷰로 접근 가능한 모든 범위에서 사용 가능 뷰 라이브러리를 로딩하고 나면 접근 가능한 Vue 변수를 이용하여 등록한다 전역 컴포넌트를 모든 인스턴스에 등록하려면 Vue생성자에서 .component()를 호출하여 수행하면 된다 Vue.component('컴포넌트 이름', { //컴포넌트 내용 .. 더보기

반응형