๐งฉCoding Convention - twelive/JUNGLE GitHub Wiki
๐ข๊ท์น
- ๊ท์น์ ๊ผญ ์ง์ผ์ผ ํฉ๋๋ค !
- ์ ๋งคํ๊ณ ํท๊ฐ๋ฆฌ๋ฉด ํ์ธํ๊ณ , ๊ทธ๋ผ์๋ ํท๊ฐ๋ฆฐ๋ค๋ฉด ๋์์ ์์ฒญํ์ธ์ !
- ๊ผญ ๊ผญ ๊ผญ ์ง์ผ ์ฃผ์ธ์ !
๐ข๊ธฐ๋ณธ ๊ท์น
- ํ์ผ๋น ํ๋์ ์ปดํฌ๋ํธ ํ์ผ๋ง ํฌํจํ๋ค.
- ํ์ง๋ง, ๋ค์์ Stateless, or Pure, Components ๋ค์ ํ์ผ์ ์กด์ฌํด๋ ๋๋ค. eslint: react/no-multi-comp.
- ํญ์ TSX ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค.
- ๋ง์ฝ TSX๋ฅผ ์ด์ฉํด ์ฑ์ ๊ฐ๋ฐ ์ค์ด๋ผ๋ฉด React.createElement ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์๋๋ค.
๐ข๋ค์ด๋ฐ
-
์ปดํฌ๋ํธ, context์ ๊ฒฝ์ฐ PascalCase๋ก ์์ฑํฉ๋๋ค. (๊ธฐ๋ณธ)
-
์์ฑ ์ด๋ฆ์ ํญ์ camelCase๋ก ํ๋ค. ex)
<Hoo userName='soi'> -
ํด๋๋ช ์ ์๋ฌธ์๋ก ๊ตฌ์ฑํฉ๋๋ค. ex)
style,pages -
React ์ปดํฌ๋ํธ ๋ด๋ถ ํด๋๋ฉด์ PascalCase๋ก ๊ตฌ์ฑํฉ๋๋ค. ex)
MyScedulePage -
๋ชจ๋ ํ์ผ ๋ฐ ํด๋์ค ๋ค์์ camelCase๋ก ์์ฑํฉ๋๋ค. (JSํ์ผ ํฌํจ) ex)
stylePage -
์ด๋ฏธ์ง ํ์ผ ๋ค์ด๋ฐ์ ๋ธ๋์น๋ช + cababcase๋ก ์์ฑํฉ๋๋ค. ex)
page-mesh-back-pack.svg,scedule-hotel-room -
๋ณ์๋ช ์ผ๋ฐ์ ์ธ ๋ณ์, ํจ์, ์ปค์คํ ํ , props : camelCase ์์ : ์๋ฌธ ๋๋ฌธ์๋ก ์ ์ธ, ์ฌ๋ฌ ๋จ์ด์ผ ๊ฒฝ์ฐ snake_case๋ก ์ฌ์ฉ ex)
VITE_PB_URL -
์ปดํฌ๋ํธ React ์ปดํฌ๋ํธ : PascalCase Page ์ปดํฌ๋ํธ : ์ด๋ฆ + Page๋ก ์ง์ ex)
HomePage
๐ขํจ์
- map, filter, ์ด๋ฒคํธ์์, ...(spread syntax)์ ๊ฒฝ์ฐ์๋ง ํ์ดํ ํจ์๋ก ์์ฑ
์์ ์์๋ฅผ ์ ์ธํ ๋๋จธ์ง๋** ์ผ๋ฐ ํจ์**๋ก๋ง ์์ฑ
ex)
let a = () => {...} - ์ด๋ฒคํธ ํจ์
handle-ex)handleClick,handleScrollUp - ๊ฐ์ ๊ฐ์ ธ์ค๋ ํจ์
get-ex)getProductName - ๊ฐ์ ์ค์ ํ๋ ํจ์
set-ex)setProductName - ๋ถ๋ฆฐํ ๋ณ์
is + ๋ช ์ฌex)isLoading()
let a = (10 > 8) ? "true" : "fale";
if(true){
return 'hello'
};
๐ขexport / import
- ์ปดํฌ๋ํธ ๋ด๋ณด๋ด๊ธฐ๋
exportํค์๋๋ฅผ ์ฝ๋ ๋งจ ์๋์ ์์ฑ ex)export default function Greeting
๐ขetc
- ๋์ฌ ์ฐ๊ธฐ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
ex)
btn๋ณด๋ค๋button,e๋ณด๋ค๋event - ๋ณ์๋
const๋ก ํต์ผํฉ๋๋ค. ํ์ง๋ง ํ์ํ ๊ฒฝ์ฐlet์ ์ฌ์ฉํฉ๋๋ค. (var ๊ธ์ง) ex)const a = 1 - ์ค๋ช ์ด ํ์ํ ๊ธฐ๋ฅ๋ค์ ๋ํด์๋ ์ฃผ์์ ์์ฑ ํฉ๋๋ค.
- Styled Component ๋ tsx ํ์ผ ๋ด์์ ์์ฑํฉ๋๋ค.