Giter Site home page Giter Site logo

anonymousrecords / single-page-application-practice Goto Github PK

View Code? Open in Web Editor NEW

This project forked from whatever-mentoring/my-mini-react-spa

0.0 0.0 0.0 75 KB

๐Ÿฅ•ย SPA๋กœ ๋งŒ๋“ค์–ด ๋ณธ ๋‹น๊ทผ ํŒ€ ๋ธ”๋กœ๊ทธ

Home Page: https://my-mini-react-spa.vercel.app

JavaScript 66.63% HTML 2.32% CSS 31.05%

single-page-application-practice's Introduction

๐Ÿฅ•ย SPA๋กœ ๋งŒ๋“ค์–ด ๋ณธ ๋‹น๊ทผ ํŒ€ ๋ธ”๋กœ๊ทธ

Vanilla JS๋กœ React ๊ตฌํ˜„ํ•˜์—ฌ, React๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ

๐Ÿ“Œ Summary

๊ธฐ๊ฐ„ 2023-11-02 ~ 11-24
๊ธฐ์ˆ  ์Šคํƒ HTML, CSS, JavaScript(ES6), Fetch, Express

๐Ÿ“Œ SPA ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๊นจ๋‹ฌ์€ ์ 

ํ˜ผ์žฌ ๋˜์–ด ์žˆ๋˜ ๊ฐœ๋…์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ธฐํšŒ

React๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ฝ”๋“œ์˜ ๋™์ž‘ ์—ฌ๋ถ€์— ์ง‘์ค‘ํ•œ ๋‚˜๋จธ์ง€, React ์ž‘๋™ ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์žˆ์ง€ ๋ชป ํ•œ ๊ฒฝํ–ฅ์ด ์žˆ์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ SPA๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ, React์— ๋Œ€ํ•ด ๋ณด๋‹ค ๊นŠ๊ฒŒ ์•Œ์•„๋ณด๋Š” ๊ธฐํšŒ๋ฅผ ๊ฐ€์ง€๊ณ ์ž ํ•˜์˜€๋‹ค.
๊ทธ ๊ฒฐ๊ณผ ๋“ค์–ด๋ณธ ์ ์€ ์žˆ์ง€๋งŒ ์ •ํ™•ํ•˜๊ฒŒ ์•ˆ๋‹ค๊ณ  ํ™•๋‹ตํ•˜๊ธฐ ์• ๋งคํ•œ ๊ฐœ๋…๋“ค์„ ํ™•์‹คํ•˜๊ฒŒ ์ •๋ฆฝํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ๋‹ค.
๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐœ๋…์„ ์–ธ๊ธ‰ํ•ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. SPA์˜ ๋‹จ์ ์œผ๋กœ๋Š” SEO์˜ ์ทจ์•ฝํ•จ์„ ๋Œ€ํ‘œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•œ๋‹ค. ์ด๋ฅผ React ์ž‘๋™ ์›๋ฆฌ, ๋‹ค์‹œ ๋งํ•ด SPA ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•ด ๋ณด๋ฉด, SPA๋Š” ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์ดํ›„์— ๋™์ ์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์„ ๊ทธ ์ด์œ ๋กœ ๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค. SPA๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์ดํ›„์— ์ฝ˜ํ…์ธ ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์—”์ง„์ด ์ ์ ˆํ•˜๊ฒŒ ์ƒ‰์ธํ™”ํ•˜๊ธฐ ์–ด๋ ค์›Œ SEO์— ์ทจ์•ฝํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“Œ ์ผ๋ถ€ a ํƒœ๊ทธ ํด๋ฆญ ์‹œ, SPA๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์Šˆ

[๋ฌธ์ œ ์ƒํ™ฉ]
์•„๋ž˜์˜ gif๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด, Header์—์„œ ํšŒ์‚ฌ์†Œ๊ฐœ์™€ ๊ฐ™์ด a ํƒœ๊ทธ๋ฅผ ํด๋ฆญํ•˜๋ฉด SPA๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘์„ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น๊ทผ ๋กœ๊ณ  ์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด SPA๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.


document.addEventListener('DOMContentLoaded', () => {
  document.body.addEventListener('click', (e) => {
    if (e.target.matches('[data-link]')) {
      e.preventDefault();
      navigateTo(e.target.href);
      console.log('SPA ์ž‘๋™');
    }
  });
  console.log('SPA ๋ฏธ์ž‘๋™');
  router();
});

[ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•]
๋‹น๊ทผ ๋กœ๊ณ ์˜ ๊ฒฝ์šฐ, a ํƒœ๊ทธ ์•ˆ์— svg ํŒŒ์ผ์ด ์žˆ๋Š”๋ฐ ํด๋ฆญ์„ ํ•˜๋ฉด a ํƒœ๊ทธ๊ฐ€ ์•„๋‹Œ svg๊ฐ€ target์œผ๋กœ ๋‹ด๊ธฐ๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ a ํƒœ๊ทธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก closest์„ ํ†ตํ•ด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

document.addEventListener('DOMContentLoaded', () => {
  document.body.addEventListener('click', (e) => {
    const targetLink = e.target.closest('[data-link]');
    if (targetLink) {
      e.preventDefault();
      navigateTo(targetLink.href);
    }
  });

  router();
});

single-page-application-practice's People

Contributors

anonymousrecords avatar

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.