S2U4정리

이유정·2022년 9월 28일
0

코드스테이츠 TIL

목록 보기
25/62
post-thumbnail

JSX
쉽게 생각하면 HTML 과 JAVASCRIPT 를 합친 기능을 한다.
코드만으로 한 눈에 기능과 디자인을 볼 수 있다.

JSX의 규칙 1 : 여러개의 엘리먼트가 있다면 꼭! 하나의 엘리먼트로 묶어줘야 한다.
여기선,

태그가 두개가 있어서 크게
로 묶어준다. !

<div>
  <div>
    <h1>hello</h1>
  </div>
  <div>
    <h2>hello</h2>
  </div>
</div>

규칙2 : 클래스 이름 표시를 className 으로 해준다.

<div className="greeting">hello!</div>

규칙3 : javascript 표현식 사용 시, 중괄호 {} 이용 한다!

  function App() {
   const name = '이유정'
   return (
      <div>
   hello, **{name}  ** 
      </div>
   )
  }
  

규칙4 : 사용자 정의 컴포넌트는 대문자로 시작!!

function Hello(){
 return <div>hello!</div>
  }
 
 fucntion HelloWorld(){
 return **<Hello />*
```*
 }
 
 규칙5 : 조건부를 써줄때 삼항연산자를 사용한다. 
 
 
<div>
   {(1+1 ===2) ? (<p>true</p>) : (<p>false</p>)}
</div>
 
 규칙 6 : 여러 개의 HTML 엘리먼트를 표시할 때, map()함수를 이용한다. 
 
 

const posts = [
 {id:1, title: 'hello world', content:'welcome to learning react!'},
 {id:2, title: 'installation', content:'you can do it'}  
 ]
 
 function Blog(){
 const content = posts.map((post)=>
  <div key={post.id}>
    <h3>{post.title}</h3>
    <p>{post.content}</p>
  </div>
  );
    return (
    <div>
      {content}
    </div>
    );
 }
    
   
    내가 만든 폴더 위치에서 밑처럼 실행을 시킨다. 
npx create-react-app 파일명
    
    그 후 vscode 터미널에서 
    npm run start 하면, react 실행 화면이 나온다. 
 
###   틀린퀴즈
const Hello = () => {
   return (
       [<div>안녕하세요</div>,<div>반갑습니다.</div>]
   )
} 
 설명: D. 배열의 각 요소는 각각 변수에 담길 수 있는 하나의 JSX 표현식이기 때문에 맞는 보기입니다.
 
 + 리액트 컴포넌트에는 클래스형 컴포넌트와 함수형 컴포넌트 두 종류가 있습니다. 기존에는 클래스형 컴포넌트를 주로 사용했었지만, 최근에는 함수형 컴포넌트를 많이 사용합니다.
 
 + 컴포넌트를 먼저 완성시키고, 레이아웃에 따라 유동적으로 컴포넌트의 위치를 변경할 수 있는 상향식 개발 (Bottom-up) 방식에 적합하다.
 
 
 let langs = ["JavaScript", "HTML", "Python"];
 let viewLangs = () =>  {
   return langs.map((it) => {
     return <p>{it}</p>;
   });
 };

 return (
   <div>
     {viewLangs}
   </div>
 );
 A. viewLangs 가 화살표 함수 표현식으로 선언되어 있기 때문에 함수를 호출하는 연산자 () 를 써야 작동합니다. {viewLangs()}
 
 let langs = ["JavaScript", "HTML", "Python"];

 let viewLangs = langs.map((it) => {
     return <p>{it}</p>;
   });
   
 return (
   <div>
     {viewLangs}
   </div>
 );
 B. map 함수 호출 결과를 viewLangs 변수에 잘 담아주었습니다.
 
 let langs = ["JavaScript", "HTML", "Python"];

 return (
   <div>
      {langs.map((it) => {
       return <p>{it}</p>;
     })} 
   </div>
 );
 C. 중괄호{}를 사용하여 JavaScript를 내부에 표현해 주었기 때문에 올바르게 작동합니다. 주의할 점은 화살표함수에서 중괄호{}를 쓰게 되면 꼭 return 이 존재해야 합니다. return 이 없다면 undefined 를 반환하게 됩니다.
 
 let langs = ["JavaScript", "HTML", "Python"];
 return (
   <div>
     {langs.map((it) => (
       <p>{it}</p>
     ))}
   </div>
 );
 
 D. 화살표함수에서 () 를 사용하면 () 안의 값이 return 값이 됩니다.
profile
팀에 기여하고, 개발자 생태계에 기여하는 엔지니어로

0개의 댓글