인터넷에서 여러 홈페이지를 보다 보면 멋진 애니메이션과 함께 잘 꾸며진 페이지들이 있습니다.
이런 페이지들을 볼 때마다 프론트엔드 개발자로서 자극을 받아 나중에 한번 구현해 보고 싶다 느끼곤 했었습니다.
이번 프로젝트는 생각했었던 여러 애니메이션들을 직접 구현하고 사용할 수 있었던 좋은 기회였으며, Next.js를 사용한 두 번째 프로젝트였습니다.
프로젝트 설계부터 진행했기에 자잘 자잘 한 에러도 많았지만 에러를 수정하고 블로그에 정리하면서 좀 더 성장한 기분을 느낄 수 있었습니다.
😥 Next.js에서 발생한 Styled-Components 에러
React나 TypeScript를 이용하여 프로젝트를 진행할 때 컴포넌트의 props를 이용하여 쉽게 스타일을 다르게 코딩할 수 있는 장점 때문에 styled-components를 사용한다.
하지만 이번에 Next.js를 이용하여 프로젝트를 진행했는데 style이 바로 적용되지 않고 일정 시간 후에 적용되는 에러를 발견했다.
그 전 프로젝트는 프로젝트 설계를 다른 팀원이 했기에 발견하지 못해서 당황했지만 역시 구글은 답을 알고 있었다...(갓 구글!)
링크에서 계속...
벨로그 정리
클래스형 컴포넌트는 render메소드에서 ReactNode
를 리턴한다. 함수형 컴포넌트는 ReactElement
를 리턴한다.
JSX는 바벨에 의해서 React.createElement(component, props, ...children) 함수로 트랜스파일된다.
html 처럼 생긴 문법을 리액트 라이브러리의 렌더링 함수로 변환하는것이다. 그래서 JSX를 사용하지 않고도 리액트를 사용할 수 있으나(JSX없이 사용하는 React) 이렇게 하면 매우 불편하다.
// jsx
<div>Hello {this.props.toWhat}</div>
<Hello toWhat="World" />
JSX는 아래 처럼 변경된다.
// transpile
React.createElement('div', null, `Hello ${this.props.toWhat}`);
React.createElement(Hello, {toWhat: 'World'}, null);
이 React.createElement의 리턴 타입이 바로 ReactElement
와 JSX.Element
이다.
CSS 애니메이션은 기존에 사용되던 자바스크립트를 이용한 애니메이션보다 다음 세 가지 이유에서 이점을 가진다
자세한 설명 및 사용방법은 링크로 대체
React.js 기반 react-player
자동 재생, React.js(Next.js) 프로젝트에 사용하기 편한 라이브러리, Control UI 커스텀 가능, 다양한 브라우저 호환 (IE, Chrome, Firefox, Edge…등)의 이점이 있어 사용
같은 유형의 n번째 형제를 선택
키워드, 정수, 공식(an+b 등)이 들어갈 수 있음.