웹_프론트엔드

    리액트 JSX/TSX에서 switch 문법 사용하기

    function HelloWorld() { const [state, setState] = useState(0); return ( {(() => { switch (state) { case 0: return ; case 1: return ; case 2: return ; default: } })()} ); }

    [React.ts] props로 setState 넘길 때 타입 지정하는 방법

    Dispatch 형태로 타입을 지정한다. import { Dispatch, SetStateAction, useState } from "react"; interface IExample { state: boolean; setState: Dispatch; } const [state, setState] = useState(false);

    앞으로 써먹어야 할 2022 CSS 최신 기술 모음

    CSS 최신 기술들을 모아보았다. 2022년 11월 현재 기준으로, 브라우저 호환성이 떨어지는 기술일 수록 아래 쪽에 작성했다. :has() 특정한 자식을 가진 부모 요소를 선택할 수 있다. /** 포인터가 올라가 있는 img를 가진 부모 a 태그 **/ a:has(> img:hover) { ... } accent-color 라디오 버튼, 체크 박스, 범위 슬라이더 등 HTML 요소의 기본 강조 색상을 변경한다. input { accent-color: purple; } dvh, lvh, svh dvh: Dynamic Viewport Height - 동적 뷰포트 높이 (네비게이션 여부에 따라 달라짐) lvh: Largest Viewport Height - 가장 큰 뷰포트 높이 (네비게이션이 없을 때) sv..

    PWA - RAIL 모델

    RAIL 모델이란? 성능에 대해 생각할 수 있는 구조를 제공하는 사용자 중심의 성능 모델로, 사용자 경험을 주요 작업으로 분류하고 각각에 대한 성능 목표를 정의하도록 돕는다. RAIL은 아래와 같은 웹 앱 수명 주기의 4가지 뚜렷한 측면을 말한다 Response (응답) Animation (애니메이션) Idle (유휴 상태) Load (로드) 참조 https://web.dev/i18n/ko/rail/ RAIL 모델을 사용한 성능 측정 RAIL 모델을 통해 디자이너와 개발자는 사용자 경험에 가장 큰 영향을 미치는 성능 최적화 작업을 안정적으로 목표로 삼을 수 있습니다. RAIL 모델이 설정한 목표와 지침, 그리고 이를 달성하기 위 web.dev

    PWA - PRPL 패턴

    PRPL 패턴이란? PRPL은 웹 페이지를 인터랙티브하고 더 빠르게 로드하는 패턴으로 Google Chrome 팀이 고안했다. 오프라인이거나 데이터 절약 모드에서 네트워크 지연이 높은 모바일 기기를 위한 것이다. PRPL은 다음을 함축하고 있는 약어다. Preload the most important resources. 가장 중요한 리소스를 미리 로드해라. Render the initial route as soon as possible. 최초 라우팅을 가능한 빨리 렌더링해라. Pre-cache remaining assets. 남은 assets를 미리 캐싱하라. Lazy load other routes and non-critical assets. 다른 라우팅과 덜 중요한 assets를 레이지로딩해라. Pr..

    자바스크립트 반복문 총 정리

    1. for 기본적인 반복문. for (let i = 0; i 0~4 까지만 출력 console.log(i); } // for 문에서 continue 사용하기 for (let i = 0; i 홀수만 출력됨 console.log(i); } 2. for in 배열 뿐만이 아니라 object에서도 사용할 수 있다. Object 내 키 값을 가져오기 위..

    PWA API - Credentials

    Credential Management API Credential Management API는 웹 사이트가 비밀번호나 공개 키(public key) 등을 웹 사이트가 저장하고 불러올 수 있게 하는 API다. 이 기능들은 사용자가 비밀번호를 타이핑 하지 않고 로그인을 하고, 웹 사이트에서 주로 사용했던 계정을 볼 수 있게 하며, 세션 만료 시 재 로그인 과정 없이 다시 세션을 시작하게 할 수 있다. Interfaces 종류 Credential: 개체(사용자)에 대한 정보를 제공 CredentialsContainer: 인증을 요청하거나, 로그인이나 로그아웃 같은 특정 이벤트가 일어날 때 사용자에게 알리기 위한 메소드들을 제공 FederatedCredential: Federated Identity Provid..

    PWA API - Payments

    Payment Request API 사용자가 선호하는 결제 방식을 제공하여 판매자(merchant)가 그 정보를 제공받도록 돕는 API다. PaymentAddress PaymentRequest PaymentRequestEvent PaymentRequestUpdateEvent PaymentMethodChangeEvent PaymentResponse MerchantValidationEvent MDN 문서 https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API Payment Request API - Web APIs | MDN The Payment Request API provides a consistent user experience for ..

    PWA API - Device Orientation

    Device Orientation 중력을 기준으로 기기의 물리적 방향의 변화(event)를 뜻한다. 모바일 기기처럼 손으로 들고 다니면서 웹을 접근할 수 있는 기기라면, 이를 통해 화면을 최적화할 수 있다. JavaScript는 이러한 이벤트에 활용할 수 있는 API로 크게 두 가지가 있다. DeviceOrientationEvent DeviceMotionEvent 1) DeviceOrientationEvent 기기 내 가속도계(accelerometer)가 기기의 방향 변화를 감지한다. 값의 종류 DeviceOrientationEvent.absolute DeviceOrientationEvent.alpha DeviceOrientationEvent.beta DeviceOrientationEvent.gamma ..

    PWA API - Notifications

    Notifications 웹 페이지가 사용자에게 시스템 알림 표시를 제어할 수 있게 하는 API다. 알림은 뷰포트 바깥에 위치하기 때문에 사용자가 탭을 변경하거나, 다른 앱으로 이동했을 때에도 표시된다. Method Notification.requestPermission() 페이지에서 알림을 표시할지 요청하는데 사용 Notification.close() 프로그램으로 알림을 닫음 예시 function notifyMe() { // 브라우저가 알림(notifications)를 지원하는지 확인 if (!("Notification" in window)) { alert("브라우저가 notification을 지원하지 않음"); } // 알림 허용이 되었는지 확인 else if (Notification.permissi..