让我们从基础开始学习React/React Hooks吧,这是学习笔记的第三部分,尝试使用React

让我们来尝试一下React吧。

用HTML文件尝试React

    「いいね前」「いいね済」がトグルするボタン
image.png
<!DOCTYPE html>
<html>
  <head>
    <title>いいねボタン</title>
    <meta charset="UTF-8" />
    <!-- Reactを読み込む -->
    <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>
    <!-- babelを読み込むとJSXが使えるようになる -->
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
  </head>
  <body>
    <!-- Reactコンポーネントが表示される -->
    <div id="likesButtonContainer"></div>

    <script type="text/babel">
      const LikeButton = () => {
        const [liked, setLiked] = React.useState(false);

        const toggleLiked = () => setLiked(!liked);

        return (
          <button className="likeButton" onClick={toggleLiked}>
            {liked ? "いいね済" : "いいね前"}
          </button>
        );
      };

      // ReactがLikeButtonをDOMに変換して、HTMLのDOMコンテナに追加する
      const domContainer = document.querySelector("#likesButtonContainer");
      ReactDOM.render(<LikeButton />, domContainer);
    </script>
  </body>
</html>
    文字列の入力状態を保持するNameInputコンポーネント
image.png
<!DOCTYPE html>
<html>
  <head>
    <title>React</title>
    <meta charset="UTF-8" />
    <!-- Reactを読み込む -->
    <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>
    <!-- babelを読み込むとJSXが使えるようになる -->
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
  </head>
  <body>
    <!-- Reactコンポーネントが表示される -->
    <div id="App"></div>

    <script type="text/babel">
      const NameInput = () => {
        const [name, setName] = React.useState("〇〇");

        const handleOnChange = (event) => setName(event.target.value);

        return (
          <div>
            <input type="text" onChange={handleOnChange} />
            <p>こんにちは{name}さん</p>
          </div>
        );
      };

      // ReactがNameInputをDOMに変換して、HTMLのDOMコンテナに追加する
      const domContainer = document.querySelector("#App");
      ReactDOM.render(<NameInput />, domContainer);
    </script>
  </body>
</html>

在CodeSandbox上尝试React编码

    • CodeSandBoxにログイン(https://codesandbox.io/)

SandBoxを作成、Reactを選択する。(左下のDependenciedでバージョンの切り替えが可能)
カウンタープログラムを作成

image.png
import React, { useState } from "react";
import "./styles.css";

// 表示用コンポーネント
const CounterText = (props) => <p>現在のカウント数{props.count}</p>;

const INITIAL_COUNT = 0;

const Counter = () => {
  const [count, setCount] = useState(INITIAL_COUNT);

  // カウントアップ、ダウンボタン。現在の値を引数で受け取ることができる
  const countAdd = () => setCount((prevCount) => prevCount + 1);
  const countSub = () => setCount((prevCount) => prevCount - 1);
  const countDouble = () => setCount((prevCount) => prevCount * 2);
  const countHalf = () => setCount((prevCount) => prevCount / 2);
  const countReset = () => setCount(INITIAL_COUNT);

  return (
    <>
      <CounterText count={count} />

      <button onClick={countAdd}>ボタン +1</button>
      <button onClick={countSub}>ボタン -1</button>
      <button onClick={countDouble}>ボタン *2</button>
      <button onClick={countHalf}>ボタン /2</button>
      <button onClick={countReset}>リセット</button>
    </>
  );
};

export default function App() {
  return <Counter />;
}

关于Create React App

    Node.jsをインストール
# yarnのインストール
npm install -g yarn
# プロジェクト作成
npx create-react-app react-practice
# アプリ起動
cd react-practice
yarn start

用于辅助React开发的工具

    • node.js

JavaScriptをサーバーサイドで動かす
npmはJavaScriptのパッケージ管理ツール

Babel

JSX→JavaScriptに変換
新しい構文をES5のコードに変換する

webback

複数のJavaScriptのモジュールをまとめることにより、パフォーマンス向上が期待できる。
Sass→CSSへのコンパイル、画像の圧縮、ESlintなど

参考资料:
– 学习React/React Hooks的基础知识

广告
将在 10 秒后关闭
bannerAds