-
Notifications
You must be signed in to change notification settings - Fork 2
프론트엔드 개발 컨벤션🔧
이도현 edited this page Jul 11, 2023
·
2 revisions
접기/펼치기
- 상수는 기본적으로 대문자 스네이크 케이스로 표현한다.
-
원시 값
const API_KEY = 'key';
-
객체 값: key값을 대문자 스네이크 케이스로 표현한다.
const WOOWA_COACH_NAME = { BACK: 'pobi', FRONT: 'poco' };
-
접기/펼치기
-
배열과 객체 모두 식별자는 복수형
-s
으로 표현한다.(
list, arr, obj
같은 단어 사용하지 않도록 한다.) ****const nameArr = [도밥, 우코, 코난]; //🔴 const names = [도밥, 우코, 코난]; //🔵
접기/펼치기
- 분리된 파일에서 import 해서 사용할 때
S
혹은Styled
를 붙이지 않는다. - Styled Components는
Box
Container
Wrapper
등으로 표현한다.- 📌 적절한 사용은 추후 논의
- 함수 선언문으로 선언한다.
-
let
의 경우 최대한 지양하고, 사용한 경우 팀원에게 이유를 설명한다.
접기/펼치기
const str = '무궁화 꽃이 피었습니다.';
const varStr = `${flower}이 피었습니다.`;
const manyLineStr = `무궁화 꽃이 피었습니다.
${flower}이 피었습니다.
무궁화 꽃이 피었습니다.
무궁화 꽃이 피었습니다.
`;
- 스타일 컴포넌트는 파일로 개별 분리한다 ex)
Component.styled.tsx
[vscode에서 alias설정한 경로를 클릭으로 이동](https://fe-j.tistory.com/202)
@/components/
**객체는 Interface로 사용한다.**
**나머지는 type**
Type을 import할 때 type을 붙인다.
import type { SomeThing } from "./some-module.js";
[Documentation - TypeScript 3.8](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html)
props type의 이름은 {컴포넌트명}props
로 짓는다.
추론되지 않는 타입의 경우에만 명시적으로 반환타입을 지정한다.
[아이템 19 - 추론 가능한 타입을 사용해 장황한 코드 방지하기](https://www.notion.so/19-73a9a55b3edb4e0fb2546dc62626fb43?pvs=21)
-
커스텀 훅은 객체로 반환한다.
//useInput.ts const useInput = () => { const [input, setInputState] = useState(''); const setInput = (input: string) => { //some... return setInputState(input); } return { input, setInput }; } //사용처 const { setInput } = useInput();
- 컴포넌트는
export default
로 모듈을 내보낸다. (vsexport const Component = () ⇒ {
)
접기/펼치기
- 기본값으로 설정한 것들이 문제가 되는 경우 기본값도 명시해준다.
{
"printWidth": 100,
"singleQuote": true,
"endOfLine": "auto"
}
- Parser 확인 필요 📌
{
"tabWidth": 2,
"useTabs": false,
"semi": true,
"quoteProps": "as-needed",
"jsxSingleQuote": "false",
"bracketSpacing": true,
"bracketSameLine": false,
"arrowParens": "always",
"trailingComma": "es5",
}