React Basic 검토

9191 단어

1. 요소 대 구성 요소



이전: 요소 형식

  ReactDOM.render(<App />, appDOM)
const app = (
  <div>
    <Title>{counter}th cat meme</Title>
    <CatForm handleFormSubmit={handleFormSubmit} />
    <MainCard img="https://cataas.com/cat/595f280b557291a9750ebf65/says/JavaScript" />
    <Favorites />
  </div>
);

const appDOM = document.querySelector('#app');

ReactDOM.render(app, appDOM)


이후: 구성 요소 형식
  • 내부에 useState 또는 함수를 추가하려면app javascript 요소에서 React Component로 변경해야 합니다. 이는 상태를 올리기 위해 코드를 변경할 때 자주 발생합니다.
  • 마지막 코드는 다음과 같이 변경해야 합니다. ReactDOM.render(<App />, appDOM)

  • Component가 아닌 요소의 이름을 부르는 것처럼 App만 쓰면 다음과 같은 오류 메시지가 나타납니다.

    Warning: Functions are not valid as a React child. This may happen if you return a Component instead of from render. Or maybe you meant to call this function rather than return it.



    const App = () {
    
      const [counter, setCounter] = React.useState(100);
    
      function handleFormSubmit() {
        // function
      }
    
      return(
        <div>
          <Title>{counter}th cat meme</Title>
          <CatForm handleFormSubmit={handleFormSubmit} />
          <MainCard img="https://cataas.com/cat/595f280b557291a9750ebf65/says/JavaScript" />
          <Favorites />
        </div>
      )
    };
    
    const appDOM = document.querySelector('#app');
    
    ReactDOM.render(<App />, appDOM)
    


    2. 목록의 각 하위 항목에는 고유한 키 소품이 있어야 합니다.



    Warning: Each child in a list should have a unique "key" prop.

    Check the render method of Favorites. See https://reactjs.org/link/warning-keys for more information.
    at CatItem (:70:45)
    at Favorites
    at div
    at App (:99:31)



    전에:

      <ul className="favorites">
        {
          cats.map(cat => <CatItem img={cat} />)
        }
      </ul>
    


    후에:

      <ul className="favorites">
        {
          cats.map(cat => <CatItem img={cat} key={cat} />)
        }
      </ul>
    


    3. useState로 생성된 목록에 새 항목을 추가하는 방법



    es6 확산 연산자 사용

    function Favorites() {
      const [favorites, setFavorites] = React.useState([CAT1, CAT2])
    
      function handleHeartClick() {
        console.log("Clicked Heart.");
    
        // add cat to the list
        setFavorites([...favorites, CAT3])
      }
    }
    


    테스트 저장소: https://github.com/sosunnyproject/cat-meme-react

    좋은 웹페이지 즐겨찾기