Giter Club home page Giter Club logo

elice-pa's Introduction

πŸ’» Elice


βš™οΈ Installation

npm install
npm start

πŸ›  Folder-structure

  src
    - components: λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈ
    - hooks: μ»€μŠ€ν…€ ν›…
    - pages: 각 νŽ˜μ΄μ§€ 
    - store: 리코일 μƒνƒœ κ΄€λ ¨
    - styles: κΈ€λ‘œλ²Œ μŠ€νƒ€μΌ

πŸ§— μ™ΈλΆ€ 라이브러리

1. 리코일

μ „μ—­ μƒνƒœ 관리λ₯Ό ν•˜κΈ° μœ„ν•΄μ„œ 리코일을 μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이번 과제λ₯Ό μ§„ν–‰ν•˜λ©΄ κ·Έλ™μ•ˆ Redux, Context APIλ₯Ό μ‚¬μš©ν•˜μ—¬μ„œ μƒˆλ‘­κ²Œ 리코일을 ν•œλ²ˆ μ μš©μ„ ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 리코일 μ‚¬μš©ν•˜λ©΄μ„œ λŠλ‚€μ μ€ ν™•μ‹€νžˆ 개발자 μΈ‘λ©΄μ—μ„œλŠ” λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈκ°€ λ§Žμ€ λ¦¬λ•μŠ€ 보닀 처음 μ‚¬μš©ν•˜λŠ” μ‚¬λžŒμ—κ²ŒλŠ” μ ‘κ·Όν•˜κΈ°κ°€ μˆ˜μ›”ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 리코일도 νŽ˜μ΄μŠ€λΆμ—μ„œ κ°œλ°œλ˜μ–΄μ„œ λ¦¬μ•‘νŠΈμ˜ Suspense와 ErrorBoundary ν˜Έν™˜μ„±μ΄ μ’‹μ•„ μ‚¬μš©ν•˜κΈ°κ°€ μˆ˜μ›”ν–ˆλ˜μ λ„ μžˆλŠ”κ²ƒ κ°™μŠ΅λ‹ˆλ‹€.

2. lodash

useDebounce μ»€μŠ€ν…€ 훅을 λ§Œλ“€κΈ° μœ„ν•΄μ„œ lodash에 μžˆλŠ” λ””λ°”μš΄μŠ€ ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


κ΅¬ν˜„ 사항

1. 검색어 μž…λ ₯

κ²€μ„Ήμ–΄ μž…λ ₯창에 λ””λ°”μš΄μ‹±μ„ μ μš©ν•˜μ—¬ ν•΄λ‹Ή 검색어λ₯Ό 기반으둜 API μš”μ²­μ„ 톡해 화면에 응닡받은 κ²°κ³Όλ₯Ό λ‚˜νƒ€λƒˆμŠ΅λ‹ˆλ‹€.

2. ν•„ν„°

가격 유료, λ¬΄λ£Œμ— 쑰건에 따라 API μš”μ²­μ„ 톡해 응닡받은 κ²°κ³Όλ₯Ό λ‚˜νƒ€λƒˆμŠ΅λ‹ˆλ‹€.

4. νŽ˜μ΄μ§€λ„€μ΄μ…˜

각 검색어, ν•„ν„°λ₯Ό ν†΅ν•΄μ„œ μƒνƒœκ°€ λ°”λ€”λ•ŒλŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜ 정보λ₯Ό μ΄ˆκΈ°ν™”ν•˜μ—¬ κ΄€λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ„ΈλΆ€ κ΅¬ν˜„ 둜직 νŽ˜μ΄μ§€λ„€μ΄μ…˜ μ»΄ν¬λ„ŒνŠΈμ—λŠ”

  • pageList: ν˜„μž¬ 화면에 λ³΄μ—¬μ§€λŠ” νŽ˜μ΄μ§€ 번호 리슀트
  • lastPage: ν˜„μž¬ 화면이 μ•„λ‹ˆλΌ 전체 νŽ˜μ΄μ§€μ˜ λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€ 번호
  • currentPage: ν˜„μž¬ νŽ˜μ΄μ§€ 둜 ꡬ성 λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

-pageList κ΅¬ν˜„ 둜직

    const startPage = Math.max(currentPage - 4, 1);
    const endPage = Math.min(
      currentPage + 4,
      Math.ceil(data.course_count / 20)
    );
    const pageArr = [];

    for (let i = startPage; i <= endPage; i++) {
      pageArr.push(i);
    }

  • μ‹œμž‘ νŽ˜μ΄μ§€μ™€ 끝 νŽ˜μ΄μ§€ 번호λ₯Ό ꡬ해 λ°˜λ³΅λ¬Έμ„ μ§„ν–‰ν•˜μ—¬ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

elice-pa's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.