サイトアイコン 上尾市のWEBプログラマーによるブログ

「React.js & Next.js超入門」の感想・備忘録1

点数

82点

感想

React.jsとNext.jsに関してはわかりやすかったが、ReduxとFirebaseはわかりづらかった。

Reactの入門書としてはまずまずだと思う。

基礎

Reactを動かす

<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<div id="root" onclick="doCount();"></div>
<script>
  let counter = 0;
  let name = 'hoge';

  const root = ReactDOM.createRoot(document.getElementById('root'));
  const doCount = () => {
    counter++;
    const element = React.createElement('p', {onClick: doCount}, `count: ${counter}`)
    root.render(element);
  };
  doCount();
</script>

React.createElementの第3引数

入れ子にする場合

const element2 = React.createElement('div', {},
  React.createElement('h5', {}, '仮想DOMのエレメントの入れ子\n')
);
ReactDOM.render(element2, document.getElementById('root2'));

配列にする場合

const element3 = React.createElement('p', {}, [
  React.createElement('h5', {key: 1}, '仮想DOMのエレメントの配列\n'),
  React.createElement('h5', {key: 2}, '仮想DOMのエレメントの配列\n')
]);
ReactDOM.render(element3, document.getElementById('root3'));

Create React App

  1. npx create-react-app react_app
  2. cd react_app
  3. npm startで確認、npm run buildでビルド

ドキュメントルート以外に配置する場合は、package.jsonにhomepageの指定が必要。
"homepage": "https://xxx.xx.xx/hoge/""homepage": "./"など

JSX

JSXを使う

const printMsg = function() {
  return <p>JSXを関数の戻り値として利用</p>
}
const element = <h5>{printMsg()}</h5>
ReactDOM.createRoot(document.getElementById('root7')).render(element);

属性値とCSS

制御文

分岐処理

Reactでは論理演算子&&、三項演算子で分岐処理を記述することが多い。
<div>{name === 'hoge' && <p>hogeです</p>}</div>

ループ処理

ReactではJSX配列、map関数でループ処理を記述することが多い。

JSX配列

const list = [<li key="100">100</li>, <li key="200">200</li>]; ReactDOM.createRoot(document.getElementById('root9')).render(<ul>{list}</ul>);

map関数

ReactDOM.createRoot(document.getElementById('root10')).render(<ul>{['aaa', 'bbb'].map(val => <li key={val}>{val}</li>)}</ul>);

イベントハンドラ

JSX内で要素に属性としてイベントハンドラを記述する場合、以下の点に注意する。

モバイルバージョンを終了