은은하게 코드 뿌시기

리액트 기초 예제 jsx/state/prop/map/컴포넌트 본문

웹/React

리액트 기초 예제 jsx/state/prop/map/컴포넌트

은은하게미친자 2023. 11. 3. 15:20
728x90

 

 

 

/* eslint-disable */

import logo from './logo.svg';
import './App.css';
import river from './river.jpg';
import React, { useState } from 'react';

function App() {
  addEventListener('click',()=>{

  })

  let [topic,topicChange] = useState(['ㄱ뷰 좋은 캠핑장',  'ㄴ뷰 좋은 카페', 'ㄷ뷰 좋은 음식점']);
  let [like,lickChange] = useState(0);

 const postProps = {
  postsData :[
  {topi : 'ㄱr뷰 좋은 캠핑장' , date : '2023-10-31'},
  {topi : 'ㄴr뷰 좋은 캠핑장' , date : '2023-10-29'},
  {topi : 'ㄷr뷰 좋은 캠핑장' , date : '2023-10-30'}
  ]  
};



  {/* ES6 destructuring 문법 */}
 
  let posts = '뷰 좋은 카페';

  function changeTopicfunc(){
    var topicTemp = [...topic];       //deepcopy 하지않으면 값 공유가 일어남 꼭 deepcopy할것
                                      //... spread opverator
    topicTemp[0] = '애견동반캠핑장';   //state 는 함수와 치환함수로 변경한다.
    topicChange(topicTemp);

  }

  function topicSort(){
    var topicTemp = [...topic];      
                                     
    topicTemp.sort();
    topicChange(topicTemp);
  }

  function topicReverse(){
    var topicTemp = [...topic];      
                                     
    topicTemp.reverse();
    topicChange(topicTemp);
  }  

  return(
    <div className="App">
     
      <div className="h-nav"  //nav css
      >
        <div> blog </div>      
      </div>
      <img src={river} />
      <button onClick={ changeTopicfunc } >버튼 </button>
      <button onClick={ topicSort } > 오름차순 </button>      
      <button onClick={ topicReverse } > 내림차순 </button>          
      <div className="list">
          <h3> {topic[0]}   <span onClick={()=> {lickChange(like + 1)}}>❤️</span>{like}  </h3>
          <p>2023-10-31</p>
          <hr/>
      </div>
      <div className="list">
          <h3> {topic[1]}</h3>
          <p>2023-10-30</p>
          <hr/>
      </div>      
      <div className="list">
          <h3> {topic[2]}</h3>
          <p>2023-10-29</p>
          <hr/>
      </div>  
      fff
      <Modal/>
      <ObjectSet {...postProps}/>  
      <br />ddd
    </div>
  );

  function Modal(){
    return(

      <>
        <div>컴포넌트 만들기 테스트 </div>
      </>

    )


  }


  function ObjectSet(propsfunc){
   
    const {postsData} = propsfunc; // 비구조화 할당
    return(
      <div >
       
        {postsData.map((post0, index) => (
        <div className="list" key={index}>
          <h3> {post0.topi}   <span >❤️</span> </h3>
          <p>{post0.date}</p> {index}
          <hr/>
        </div>                
        ))}        
 
      </div>
    )
  }

}

export default App;
728x90

' > React' 카테고리의 다른 글

리액트 csr/ ssr  (0) 2024.01.17
vs code 단축키  (0) 2023.11.06
state 기본개념  (1) 2023.11.01
eslint-disable  (0) 2023.11.01
JSX  (0) 2023.11.01
Comments