B3S
menu close

雑記

りあクト! を途中まで読んでみた!


きーぼう

公開日:2021/10/27


こんにちは、きーぼうです。
Reactの勉強をはじめました。
勉強している書籍は、「りあクト!」です。まだ読んでる途中ですが、歴史的背景や詳細の説明があってとてもわかりやすいです!

今回はその中でピックアップした内容を紹介します。

目次

まず、JavaScriptについて

JavaScriptのポイント

  • 第一級関数とクロージャーをサポート
    • 第一級関数=プログラムの実行時に生成され、データ構造に含めることができ、他の関数の引数として渡したり、戻り値として返したりすることのできる言語
    • クロージャー=関数の中に関数を定義できる。
      クロージャーが使えることにより、グローバル変数の削減、コールバック関数記述の簡素化ができる
  • プロパティを随時追加できる柔軟なオブジェクト
  • 表現力の高いリテラル記法
    • リテラル=プログラムで数値や文字列などデータの型を直接記述できるように定義されたもの。
      https://jsprimer.net/basic/data-type/

変数の宣言

var → let を使いましょう


Varの問題点

  • 再宣言および再代入が可能
    • コードの量が増えるほど潜在的なバグが生まれる
  • 変数の参照が巻き上げられる
    • JavaScript特有の現象
  • スコープ単位が関数

TypeScriptについて

TypeScriptのポイント

  • マイクロソフトが開発
  • JavaScriptで大規模アプリ開発をする上での欠点を補うためにつくられたので、大規模アプリ向き
  • 型定義できるJavaScript
  • JavaScriptの上位互換(スーパーセット)である

Reactについて

Reactは、なぜテンプレートを使わないのか?


テンプレートはシンプルなアプリなら問題ないが、制御が多いアプリだとDX(開発者体験)が顕著に低下する

顕著に低下する例

  • viewで起きたエラーがわかりにくい
  • Blade(Laravel)などのテンプレートエンジンごとに書き方を覚える必要がある
  • 複雑な処理は簡単に実装できない

結論:
JavaScriptベースでUIがかけるほうが、エラーもjsのエラーでわかりやすく、
テンプレートエンジンの書き方を覚える必要もほとんどなく、効率的!
なので、Reactは、テンプレートを利用しなかったそうです。

Reactの魅力


Learn Once, Write Anywhere(ひとたび習得すれば、あらゆるプラットフォームで開発できる)

ReactNative を活用することでさらなる広がりがでます。

  • 制限事項はあるが、Web,iOS,Androidの3つのプラットフォームをほぼ共通のコードで書くことが可能
    • 制限事項:Bluetooth、アプリ内購入、バックグラウンド実行には対応していない
    • 制限事項を外すには、プラットフォームごとに対応が必要

まとめ

簡単ではありますが、「りあクト!」で学んだ内容を紹介させていただきました。
私と同じようにReactを学びたい方にはおすすめの本なので是非読んでみてください!