React Beginning Chep5

Posted by : at

Category : react   study


Component의 개념 정리

  • 새로운 페이지를 관리 하기 위한 React 문법이다.
  • 초기에 생성되는 App.js 도 일종의 Component이다.
    function Modal(){
      return (
    <div className="modal">
      <h2>제목</h2>
      <p>날짜</p>
      <p>상세내용</p>
    </div>  
      )
    }
    
  • function return 소괄호 안에다 선언을 한다.
  • 선언에 Component를 html 문법에 선언이 가능하다. <Modal></Modal>
  • Component 첫시작은 대문자로 시작해야 된다.
  • return() 안에 있는건 태그하나로 묶어야 된다. 하나의 Html 태그로 시작하여 끝나야 한다.

    return() 내부를 묶을때 의미없는 <div> 쓰기 싫으면 <></> Fragment로 처리하여도 무방하다.

Component를 만드는 기준

  • 반복출현하는 Html 페이지부분에 선언하는것이 용이 하다.
  • 사이트에서 자주 바뀌는 UI를 사용하면 재렌더링이 발생하기에 사용하기 좋다.
  • 다른 페이지 만들때도 Component를 만드는게 좋다.

React에서 클릭시 동작하는 UI

if 조건문과 동일한 React 조건문 사용법

일반적인 javascript 동작 방식은 style=”display:block” 이런식으로 사용하지만 React에서는 다르다.

  • { if(조건식) 실행할 코드 else 실행할 코드 } jsx중간에 변수놓고 싶으면 if문을 중괄호 안에 넣을수 없다 .
  • if문을 대신할 삼항연산자을 사용하도록 한다.
  • { 조건문 ? 참 : 거짓 }
    let [modal, modalChange] = useState(false);
     {
       modal === true //state값 데이터 조건문
       ? <Modal></Modal> //component 를 호출가능
       : null // html에서 빈공백으로 보여진다. 
     }
    

map를 이용한 React 반복문 선언 방법

  • javascript에서 map 함수 쓰는 법. {map()} 은 반복문과 유사하다.
    var newArray = array.map(function(a) {
    return a * 2 // a라는 데이터를 2곱해준다
    })
    
  • 글제목 갯수에 맞게 html을 생성 방법.
    글제목.map( ()=> {
      return <div>hello</div> //html 그대로 작성하면 된다.
    })
    
    • 글제목이라는 Data에 갯수만큼 div를 생성이 가능해진다.

for문을 이용한 일반적인 사용방법

   function forUI () {
    var array = [];
    for( var i = 0; i < 3; i++){
      array.push(<div>hello</div>)
    }
    return array
  }

forUI(); // 3개의 div가 생성된다.  or { forUI() }

자식 Component 에 자료 전달

props 사용법

  • 부모 Component에 선언된 State를 자식 Component에 전달 하기 위해서는 props를 이용한다.
  1. 부모 Component에 State값을 선언 <Modal 작명={state명}> 이와 같이 선언해야지 자식 Component에 이용 가능.
  2. 자식 Coponent는 param 함수 function Modal(props){} props param 데이터를 가져와서 사용이 가능하다.
/* 부모 콤포넌트 */
let [postion, postionChange] = {"서울","마산","부산"}
<Modal 지역 = {postion}></Modal>

/* 자식 콤포넌트 */
function Modal (props){
  return (
    <div> {porps.postion}</div>
  )
}

Input의 입력값 state 변경

  • state값을 input 데이터 클릭이 될때마다 state값을 변경하도록 하고
  • 그이후에 변경된 값을 기존 state에 적용한다.
let [inputData, inputDataChange] = useState(''); //초기값 선언

  <div className="public">
    <input onChange= { (e)=> { inputDataChange(e.target.value)}}/>    
    //e.target.value input 타입의 정보를 변경 한다. 
    <button onClick ={  ()=> {
      var arrycopy = [...글제목, inputData];
      글제목변경(arrycopy) ;
    }}>저장</button>
    

예전 버젼의 class를 이용한 문법 설명

class Profile extends React.Component { //class Propfile을 선언 React.Component를 상속 받는다.
  constructor(){ //생성자 선언
    super(); //super객체 선언
    this.state= {name : 'kim',  age : 30} //state 선언 방법 
  }
  changeName = () => { //함수를 이용한 이름 변경법
    this.setState( {name : 'park' })
  }
  render(){
    return (
      <div>
      <h3> 프로필입니다</h3>
      <p> 저는 {this.state.name} 입니다. </p> //state 선언 방법 
      <button onClick ={this.changeName}> 버튼 </button> //onClick 이벤트 발생후 함수 이용한 이름 변경
      </div>
    )
  }
}

About Ghosts
Ghosts

Hi I a Ghosts, a Web Developer and Designer.

Email : memories109@gmail.com

Website : https://ghostsdev.github.io/

About Ghosts

개인정보 공유, 포트폴리오 제작 , 블러그 관리, 하루 일상, 사진 갤러리

Star
Useful Links