はんのうきそ

46752 ワード


01反応器はフレームですか、それともライブラリですか。


反応を検索すると
 Google:Webフレームワーク
 公式ホームページ:ライブラリ

フレーム・ライブラリの違い


ライブラリにフォルダ構造がありません
フレームワークにフォルダ構造を持つ
反応器は大きく4つのライブラリに分かれている.
フレームワークがもっと適当だと思います.
リアクターの特徴は、[変化した値](Variation Value)の状態だけを把握して再レンダリングすることです.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>

<body>
  <div id="root">

  </div>

  <!-- js에서 버튼을 만드는 방법 -->
    <!-- <button>버튼</button> -->

  <!-- 리액트로 버튼을 만드는 방법(원리) -->
  <script type="text/babel">
      const id = 'ingoo2'
      const btn = <button id={id}>버튼</button>

      class App extends React.Component{
        render(){
          return (
            <button>클래스 컴포넌트 버튼</button>
          )
        }
      }

      ReactDOM.render(
        <App />
        ,document.querySelector('#root')
      )


  </script>
</body>
</html>

逆にjsを使用するとdivエントリ全体が変更されることを確認できます.
これは,変更値のみを変更する反応の効率が高いことを意味する.

4つの反応器を構成するライブラリ


1)react:react構文を含むライブラリ
2)react-dom:変更された値をチェックして、その領域のロールのみを変更する
3)babel:jsx=>js領域HTMLの使用を許可-フェイスブックから借用
4)webpack-facebook借用

少なくとも2つのライブラリさえあれば、反応器は反応器を生成することができる。


02 ReactDOM.render()


反応器は、単一ページアプリケーション(SPA)の作成に使用されます.

ReactDOM.render()

ReactDOM.render(
	<App />  // 첫번째 인자값 : 내가 넣을 내용
    ,document.querySelector('#root')  // 두번재 인자값 : 내가 넣을 위치
)
3つのパラメータ値を含む
(1)別名=>a,button,input,liなど
(2)属性値(オブジェクト)=>inputtype="text"
(3)innerHTMLコンテンツ

03構成部品タイプ


構成部品は、Elementを関数またはクラスの動作として回収可能な単位です.
2種類の構成部品があります
ㄱ)類部品(過去によく使われたもの)
ㄴ)関数構成部品(現在主に使用)
デフォルトでは、RealtDOMは1つの構成部品のみを実行します.
(構成部品はJSX形式で使用)
出典:反応公式文書
ㄴHTMLで反応を実行するには、次のリンクをロードする必要があります.
  <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script> //react 사용
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script> // reactDOM 사용
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> // babel 사용
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>

<body>
  <div id="root">

  </div>

  <!-- js에서 버튼을 만드는 방법 -->
    <!-- <button>버튼</button> -->

  <!-- 리액트로 버튼을 만드는 방법(원리) -->
  <script type="text/babel">
    //React-dom.render()
    //첫번째 인자값 : 내가 넣을 내용
    //두번재 인자값 : 내가 넣을 위치 => document.querySelector('#root')
    
    //인자 값이 3개 들어감
      //(1) 엘리먼트 명 => a, button, input, li 등등
      //(2) 속성값(object) => <input type="text">
      //(3) innerHTML 내용물 => <span>하이</span>

      // const btn = React.createElement(('button', { id : 'heidi', class : 'heidi2'}, '버튼'))

      const id = 'heidi2'
      const btn = <button id={id}>버튼</button>

      class App extends React.Component{
        render(){
          return (
            <button>클래스 컴포넌트 버튼</button>
          )
        }
      }

      ReactDOM.render(
        <App />
        ,document.querySelector('#root')
      )


  </script>
</body>
</html>
結果値

クラス構成部品としてテーブルを構成する場合。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
  <div id="root"></div>
  <script type="text/babel">

  //tables 컴포넌트
  //subject 컴포넌트
  //content 컴포넌트

    class Tables extends React.Component{
      render(){
        return(
          <table>
            <thead> 
              <Subject />
            </thead>
            <tbody>
              <Content />
              <Content />
              <Content />
              <Content />
              <Content />
              <tr>
                <Tail />
              </tr>
            </tbody>
          </table>
        )
      }
    }

    class Tail extends React.Component{
      render(){
        return(
          <React.Fragment>
            <td>1</td>
            <td>2</td>
            <td>3</td>
            <td>4</td>
            <td>5</td>
          </React.Fragment>
        )
      }
    }

    class Subject extends React.Component{
      render(){
        return(
          <tr>
            <th>번호</th>
            <th>제목</th>
            <th>작성자</th>
            <th>작성일</th>
            <th>조회수</th>
          </tr>
        )
      }
    }

    class Content extends React.Component{
      render(){
        return(
          <tr>
            <td>1</td>
            <td>1</td>
            <td>1</td>
            <td>1</td>
            <td>1</td>
          </tr>
        )
      }
    }

    class App extends React.Component{
      render(){
        return(
          <Tables />
        )
      }
    }

    ReactDOM.render(
      <App />
      ,document.querySelector('#root')
    )


  </script>
</body>
</html>

テーブルを関数構成部品として構成する場合。

<body>
  <div id="root"></div>
  <script type="text/babel">

    const Content = () => {
      return(
        <tr>
          <td>1</td>
          <td>2</td>
          <td>3</td>
          <td>4</td>
          <td>5</td>
        </tr>
      )
    }

    const Subject = () => {
      return(
        <tr>
          <th>번호</th>
          <th>제목</th>
          <th>작성자</th>
          <th>작성일</th>
          <th>조회수</th>
        </tr>
      )
    }

    const Table = () => {
      return(
        <table>
          <thead>
            <Subject />
          </thead>
          <tbody>
            <Content />
            <Content />
            <Content />
            <Content />
            <Content />
          </tbody>
        </table>
      )
    }

    class App extends React.Component{
      render(){
        return(
          <Table />
        )
      }
    }

    ReactDOM.render(<App />, document.querySelector('#root'))
    
  </script>
</body>

04 webpackとは?


ㄴブラウザと通信する複数の複雑なjsファイルを単一のjsファイルのバンドルパッケージに翻訳する.
複数人で1ページのアプリケーションを開発し、変数名などの競合を防止
viteがwebspackの代わりに現れた
これはもっと勉強しなければならない内容です.