반응형
우선 간단하게 JSX에 대하여 짚어보자면
'JSX는 리액트에서 컴포넌트를 정의할 때 사용되는 문법이다.'
위 사진에서 return 뒤에 있는 <div>Hello</div>는 딱 봤을 때 HTML코드 처럼 보인다. 하지만 이렇게 언급을 하는 이유가 있듯이 위의 저 코드는 스크립트 코드이다. 한번 Babel로 넘어가서 확인을 해보자. 추후에 Babel이 무엇인지도 간단하게 다루어 보겠다.
위의 사진을 보면 그저 Hello 와 span 태그로 문구하나를 써준것이 오른쪽의 스크립트코드로 변환 된 것을 볼 수 있을 것이다.
하지만 이렇게 스크립트 코드로 변환시켜 주려면 지켜야 하는 규칙들이 몇가지 있다.
첫번쨰!!!!!
태그는 무조건 꼭 닫혀 있어야 한다><
이런식으로 닫는 div태그가 하나 없을 경우에 에러가 발생하는데 input 이나 br 같은 태그들 같은경우 <br></br>로 써주기엔 너무 불편하니 <br />, <input /> 등 싱글태그로도 사용이 가능하다.
두번쨰!
두개의상의 태그는 꼭 하나의 태그로 감싸져 있어야 한다.
이 말을 내식대로 바꿔보자면 형제들끼리 있으면 안되고 부모가 있어야 한다 혹은 동급의 태그들만 있으면 안되고 캡짱태그가 있어야 한다로 풀어 볼 수 있다.
이 코드를 보면 감싸주는 태그 없이 각각 두개의 태그가 서로 속해있지 않고 까불고 있는것을 볼 수가 있다. 괄호에 표시된것처럼 에러가 발생하는데
이렇게 div태그로 부모 혹은 캡짱 태그로 감싸주게 되면 에러가 사라지게 된다.
***** 여기서 키포인트!!!!!********
저렇게 div태그로 감싸주는 것이 불편하거나 혹은 본인이 짜둔 스타일링에 영향을 끼칠떄(div 선택자를 이용했거나 부모 블록에 flex를 맥여놨다거나) 등을 위해 하나의 표기법이 또 존재하는데
이런식으로 써주면 된다. 실제로 브라우저에서 개발자도구를 이용해서 소스보기로 코드를 검사해봐도 추가된 div태그등이 없을 것이다!!!.
이번에는 JSX내부에서 '자바스크립트 값을 사용하는 방법' 에 대해서 알아 볼것이다.
컴포넌트를 이렇게 작성해주고 실행화면을 보게 된다면
요런식으로 중괄호로 감싸줘야지 값을 사용할 수 있는걸 확인할 수 있당><
또 인라인스타일을 주고 싶을 떄가 있는데 보통 우리는
<div style="background:black;"></div>이런식으로 간단한 스타일링등은 직접 태그에다 먹여줬는데 이런 식으로 코드를 작성해주면 에러가 난다. 인라인스타일을 먹일려면 따로 객체를 만들어 줘서 넣어주면된다.
이런식으로 스타일이 정상적으로 먹는 걸 볼 수가 있겠다><
그다음 한가지 더 추가사항으로
CSS를 입히거나 스크립트 처리를위해 클래스를 붙여줄때 기존의 class 말고 className을 사용하도록 한다. 실제로 작성해보면 과거에는 아예 에러가 떴으나 지금은 작동은 되도 콘솔창에 className을 써주라고 경고 메세지가 뜬다.
반응형
'Reactjs' 카테고리의 다른 글
<Reactjs>Input상태 관리 , 여러개 Input 상태 관리 (0) | 2020.07.09 |
---|---|
<Reactjs>useState로 동적 문서 만들기 (0) | 2020.07.09 |
<Reactjs> Props (0) | 2020.07.09 |
<Reactjs> 첫번째 컴포넌트 만들기 (0) | 2020.07.08 |
<Reactjs> 프로젝트 만들기 (2) | 2020.07.08 |