웹 프론트엔드 JS 튜토리얼 나의 React 여정: 20일차

나의 React 여정: 20일차

Dec 19, 2024 pm 12:50 PM

My React Journey: Day 20

예산 추적기 프로젝트

오늘은 Budget Tracker라는 프로젝트를 진행했습니다. 이 프로젝트의 목표는 이전에 배운 개념을 실용적이고 기능적인 방식으로 적용하는 것이었습니다. 제가 구현한 개념과 이를 통해 제 기술이 어떻게 향상되었는지에 대한 개요는 다음과 같습니다.

개념 학습 및 적용

1.HTML 구조와 의미

  • 예산 추적기에 의미 있고 잘 구조화된 HTML 레이아웃을 사용하여 명확성과 손쉬운 유지 관리를 보장했습니다. 예를 들어, 테이블 요소는 예산 항목을 구성하는 데 사용되었으며 데이터 수집을 위해 입력 필드가 추가되었습니다.

2.스타일링을 위한 CSS
기능성과 미적 측면 모두를 고려하여 프로젝트 스타일을 지정하는 방법을 배웠습니다.

  • .budget-tracker, .input 및 .delete-entry와 같은 클래스를 사용하여 UI를 디자인하고 구성했습니다.
  • 반응형 디자인 원칙에 중점을 두고 추적기가 다양한 화면 크기에서 작동하도록 보장합니다.
  • 상호작용을 개선하기 위해 .delete-entry와 같은 버튼에 호버 효과를 추가했습니다.

3.JavaScript 모듈

  • 별도의 BudgetTracker.js 클래스를 생성하여 JavaScript를 모듈화했습니다. 이를 통해 코드 재사용성과 문제 분리가 향상되었습니다.

4.로컬 저장소

  • 세션 전반에 걸쳐 예산 항목을 유지하기 위해 로컬 저장소를 구현했습니다. 사용자는 데이터 손실 없이 앱을 다시 로드할 수 있습니다.
localStorage.setItem("budget-tracker-entries-dev", JSON.stringify(data));
로그인 후 복사

5.동적 DOM 조작

  • JavaScript를 사용하여 예산 표에서 행을 동적으로 생성하고 업데이트했습니다.
this.root.querySelector(".entries").insertAdjacentHTML("beforeend", BudgetTracker.entryHtml());
로그인 후 복사

6.이벤트 처리
저는 이벤트 리스너를 사용하여 앱을 대화형으로 만들었습니다. 예:

  • '새 항목' 버튼을 클릭하면 새 행이 추가됩니다.
  • '삭제' 버튼을 클릭하면 행이 제거됩니다.
row.querySelector(".delete-entry").addEventListener("click", e => {
    this.onDeleteEntryBtcClick(e);
});
로그인 후 복사

7.데이터 유효성 검사 및 형식 지정

  • 총 수입 또는 지출을 계산하는 논리를 적용하고 Intl.NumberFormat을 사용하여 적절한 형식으로 표시했습니다.
const totalFormatted = new Intl.NumberFormat("en-US", {
    style: "currency",
    currency: "USD"
}).format(total);
로그인 후 복사

8.버전 관리 및 디버깅

  • 브라우저 개발 도구를 사용하여 오류를 디버그하고 동적 구성 요소의 동작을 검사했습니다.

사업 성과

이 프로젝트를 통해 다음 사항에 대해 더 깊이 이해하게 되었습니다.

  • HTML과 CSS를 사용하여 사용자 친화적인 인터페이스를 디자인합니다.
  • JavaScript 로직을 통합하여 데이터를 동적으로 처리합니다.
  • 프로젝트 확장을 위한 코드 모듈성의 중요성
  • 로컬 저장소를 사용하여 상태를 유지합니다.

빈 입력 필드를 처리하고 정확한 계산을 보장하는 등의 어려움에 직면하면서 이 프로젝트를 통해 문제 해결 능력도 향상되었습니다.

추적기는 날짜, 설명, 유형 및 금액에 대한 입력 필드와 총 잔액을 표시하는 동적 요약 섹션으로 구성됩니다.

이 프로젝트를 통해 실제 애플리케이션 구축에 대한 자신감이 더욱 강화되었습니다! ?

React Native에 뛰어들 준비가 되었습니다

위 내용은 나의 React 여정: 20일차의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 문자열 문자를 교체하십시오 JavaScript로 문자열 문자를 교체하십시오 Mar 11, 2025 am 12:07 AM

JavaScript로 문자열 문자를 교체하십시오

jQuery는 요소 패딩/마진을 얻습니다 jQuery는 요소 패딩/마진을 얻습니다 Mar 01, 2025 am 08:53 AM

jQuery는 요소 패딩/마진을 얻습니다

jQuery 날짜가 유효한지 확인하십시오 jQuery 날짜가 유효한지 확인하십시오 Mar 01, 2025 am 08:51 AM

jQuery 날짜가 유효한지 확인하십시오

10 JQuery Accordions 탭 10 JQuery Accordions 탭 Mar 01, 2025 am 01:34 AM

10 JQuery Accordions 탭

10 JQuery 플러그인을 확인할 가치가 있습니다 10 JQuery 플러그인을 확인할 가치가 있습니다 Mar 01, 2025 am 01:29 AM

10 JQuery 플러그인을 확인할 가치가 있습니다

노드 및 HTTP 콘솔로 HTTP 디버깅 노드 및 HTTP 콘솔로 HTTP 디버깅 Mar 01, 2025 am 01:37 AM

노드 및 HTTP 콘솔로 HTTP 디버깅

사용자 정의 Google 검색 API 설정 자습서 사용자 정의 Google 검색 API 설정 자습서 Mar 04, 2025 am 01:06 AM

사용자 정의 Google 검색 API 설정 자습서

jQuery div에 스크롤 바를 추가합니다 jQuery div에 스크롤 바를 추가합니다 Mar 01, 2025 am 01:30 AM

jQuery div에 스크롤 바를 추가합니다

See all articles