Web/Javascript

[React] 리액트 기초 2 - function 으로 component 만들기, function으로 RoundButton 만들기

kimbangul 2020. 5. 24. 23:59

function 으로 component 만들기

 

 

 

HTML

 

<div id="root"></div>

<div id="root2"></div>

<div id="root3"></div>

 

 

 

 

 

JS(Babel)

 

console.clear();

 

function MyTag(props){

  console.log(props.name);

  return <h1>Hello, {props.name}!</h1>;

}

// JSX

 

ReactDOM.render(<MyTag name="kimbangul"/>, document.getElementById('root'));

 

// 태그네임은 대문자로 시작해야 함. (my-tag는 불가)

 

 

 

class MyTag2 extends React.Component{

  render(){

    return <h1>Hello, {this.props.name}!</h1>;

  }  

}

 

ReactDOM.render(<MyTag2 name="kim"/> , document.getElementById('root2'));

 

// class와 함수의 차이: class는 함수를 여러개 묶을 수 있는 단위

// class + 함수 이름 + extends React.Component

 

// 리액트로 태그 만들기

//  1. 태그명을 함수로 만든다

//  2. return을 JSX로

 

// 1. class로 태그를 만든다(복잡한 태그를 만들 때 사용)

 

 

// function Mytag(props){

//   return <h1>Hello, {props.name}!</h1>;

// }

 

// const element = <Mytag name ="bangul"/>;

 

// ReactDOM.render(element, document.getElementById('root'));

 

// // <Mytag name ="bangul"/> 을 변수에 담아도 되고, 그대로 render해도 된다.

 

 

 

 

 

function으로 RoundButton 만들기

 

 

HTML

<div id="root"></div>

<div id="root2"></div>

 

 

JS(Babel)

 

// 새로운 버튼 만들기

function RoundButton(props){

  const buttonStyle = {

    'padding' : '10px',

    'border-radius' : '20px'

  };

  

  return (

    <button style={buttonStyle}>

      {props.children}      

    </button>

  );

}

// 오픈, 클로즈 태그 안에 들어있는 텍스트가 바로 Children

 

ReactDOM.render(<RoundButton>새로운 버튼</RoundButton>, document.getElementById('root'));

ReactDOM.render(

  <div>

    <RoundButton>야옹</RoundButton>

  <RoundButton>고양이</RoundButton>{' '}

    <RoundButton>방울이</RoundButton>

  </div>,

  document.getElementById('root2'));

// JSX에 값을 넣을 때 최상위 엘리먼트는 단 하나여야 함!!!

//  {' '}를 넣으면 여백을 만들 수 있음.