๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

JavaScript168

React Slick ์‚ฌ์šฉ๋ฒ• ๐ŸŒณ React Slick ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์—์„œ carousel์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๋ชจ๋“ˆ ๐Ÿ‘‰๐Ÿป React Slick ํ™ˆํŽ˜์ด์ง€ ๐Ÿ‘‰๐Ÿป ์Šฌ๋ผ์ด๋“œ ์ข…๋ฅ˜ 1. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์„œ ์„ค์น˜ํ•ด์ค€๋‹ค. $ npm install react-slick --save $ npm install slick-carousel --save 2. ๊ทธ๋ฆฌ๊ณ  Slick์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” CSS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ importํ•ด์ค€๋‹ค. import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; 3. ๊ธฐ๋ณธ ํ˜•ํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. import React, { Component } from "react"; import Slider.. 2021. 11. 16.
Custom-Hook Custom-Hook์€ ์‚ฌ์šฉ์ž ์ •์˜ Hook์ด๋ผ๋Š” ๋œป์ด๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ Hook์€ ๋‹ค๋ฅธ hook์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ Hook์€ ํŠน์ •ํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ํ•„์š” ์—†๋‹ค. ๋ฌด์—‡์„ ์ธ์ˆ˜๋กœ ๋ฐ›์•„์•ผ ํ•˜๋ฉฐ ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ฌด์—‡์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ์ง€๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ Hook์˜ ์ด๋ฆ„์€ “use”๋กœ ์‹œ์ž‘๋˜์–ด์•ผ ํ•œ๋‹ค. (๊ด€์Šต) ์‚ฌ์šฉ์ž ์ •์˜ Hook์€ ์ด์ „ React ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋˜ ๋กœ์ง ๊ณต์œ ์˜ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฐธ๊ณ  ์‚ฌ์ดํŠธ ๐Ÿ‘‰๐Ÿป ์ž์‹ ๋งŒ์˜ Hook ๋งŒ๋“ค๊ธฐ 2021. 11. 16.
TypeScript๋ž€? ๐ŸŒ€ TypeScript ๋ž€? JavaScript + Type = TypeScript ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ตฌํ˜„ํ•œ JavaScript์˜ ์ƒ์œ„ ํ™•์žฅ(Superset) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๋ฐœํ‘œํ•œ ์˜คํ”ˆ ์†Œ์Šค ES6์˜ Class, module ๋“ฑ๊ณผ ES7์˜ Decorator ๋“ฑ์„ ์ง€์› ํ™•์žฅ์ž๋กœ๋Š” .ts๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ปดํŒŒ์ผ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ runtime์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋œ JavaScript ์ฝ”๋“œ๋ฅผ ๊ตฌ๋™์‹œํ‚จ๋‹ค. ๐ŸŒ€ TypeScript์˜ ํŠน์ง• ์ •์  ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด Vanilla Javascript์™€์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๋‹ค. ์ฆ‰, 'JavaScript๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์žˆ์„๋งŒํ•œ type ERROR๋“ค์„ ๋ฏธ๋ฆฌ ์žก๋Š” ๊ฒƒ' ์ด Typescript.. 2021. 11. 15.
๋˜๋„๋ก์ด๋ฉด ์“ฐ์ง€ ๋ง์•„์•ผ ํ• ? type ๐Ÿ’ฉ null null์€ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. let person: null; ๐Ÿ‘Ž๐Ÿป let person2: string | null; ๐Ÿ‘๐Ÿป ๐Ÿ’ฉ unknown unknown = ์•Œ ์ˆ˜ ์—†๋Š” unknown์œผ๋กœ ์ง€์ •์„ ํ•˜๋ฉด ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธธ์ง€ ์•Œ ์ˆ˜ ์—†๋Š” type์ด ๋œ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. let notSure: unknown = 0; notSure = 'he'; notSure = true; unknown์€ type์ด ์—†๋Š” JavaScript์™€ ์—ฐ๋™์„ ํ•ด์„œ ์“ธ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋Šฅํ•˜๋ฉด type์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค! ๐Ÿ’ฉ any ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. unknown์€ ์–ด๋–ค type์„ ์‚ฌ์šฉํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด ใ… ใ…  ๋ผ๋Š” ๋œป์ด์–ด์„œ ๊ฒธ์†ํ•˜๊ธฐ๋ผ๋„ํ•˜์ง€ any.. 2021. 11. 15.
Type Alias ๐ŸฅŠ Type Alias๋ž€? ํƒ€์ž…์— ์ง์ ‘ ์ด๋ฆ„์„ ๋ช…๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. ์ฆ‰, ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ. ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์‚ฌํ•˜๋‹ค. Type Alias๋Š” ์›์‹œ๊ฐ’, union ํƒ€์ž…, tuple ๋“ฑ๋„ ํƒ€์ž…์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค์ฒ˜๋Ÿผ extends ๋˜๋Š” implements ๋  ์ˆ˜๋Š” ์—†๋‹ค. ex) type Person = { name: string; age: number; }; const person: Person = { name: 'yunkyung', age: 20, }; 2021. 11. 15.
[JavaScript] undefined, null, undeclared ๐Ÿ„ undefined (๋ฏธ์ •์˜ ๋ณ€์ˆ˜) ๊ฐ’์„ ๋Œ€์ž…ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜, ์ฆ‰ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์‹๋ณ„์ž์— ์ ‘๊ทผํ•  ๋•Œ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ return๋ฌธ์ด ์—†๊ฑฐ๋‚˜ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ๐Ÿ„ null ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ '์—†์Œ'์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ž…ํ•œ ๊ฐ’ null์ด๋ผ๋Š” ๋นˆ ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ๊ฐ์ฒด๊ฐ€ ๋œ๋‹ค. ๐Ÿ„ undeclared (๋ฏธ์„ ์–ธ ๋ณ€์ˆ˜) ๋ณ€์ˆ˜ ์„ ์–ธ์กฐ์ฐจ ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ƒํƒœ 2021. 11. 5.
๋ฐ˜์‘ํ˜•