DEV Community

kaede
kaede

Posted on

Next.js docs -- js から React へを読んで

記事のリンク

https://nextjs.org/learn/foundations/from-javascript-to-react

why

Twitter で話題になっていた記事。

職場でも話題になっていたのでかなり大事だと認識して、しっかりと読んで解釈してみた。

HTML と DOM の対比

Image description

この記事を読むまでは HTML を update していると思っていた。恥ずかしい。

https://nextjs.org/learn/foundations/from-javascript-to-react/updating-ui-with-javascript

js では createElement などをして dom を操作するコードを書くだけで
実際に HTML を変更しているわけではない
HTML を CRUD する DOM を書いているだけらしい。

バックエンドが実際に DB を変更しているわけではなく、 DB を変更するためのクエリを生み出すコードを書いている関係と似ている(感想)

===

{ Imperative(命令的) or Imperative(宣言的)} プログラミング

wiki によると

https://ja.wikipedia.org/wiki/%E5%91%BD%E4%BB%A4%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

命令的、宣言的という言葉はよく聞く。
wiki によると
特典ポイント5%と消費税10% が存在する EC サイトの実例っぽいので例えると

100 + 200 で 300 にするのみで、現在の特典と消費税を計算しないのが 命令的(Imperative)

100 + 200 で 300 にするだけでなく、外部の state に 15% 追加されることを保存するのが 宣言的(Declarative)

React や Vue は state に追加する declare もしてるから 宣言的。

===

今回の Next の記事によると

https://nextjs.org/learn/foundations/from-javascript-to-react/updating-ui-with-javascript

ここで扱っていた js のコードは命令的だった。
インターフェースがどうやって DOM を更新していくか、ステップごとに書いていった

しかし、記事では 何を したいのかを宣言する 宣言的なコードを書いたほうがスピードが速いと言っている。

そして最もポピュラーな宣言的なライブラリが React.js。

まとめ

React は私たち開発者から何をしたいかを受け取り、どうやって DOM を実装するかをこなしてくれる。

React の詳細な書き方

Babel 入れれば

      ReactDOM.render(<h1>Develop. Preview. Ship. 🚀</h1>, app);
Enter fullscreen mode Exit fullscreen mode

も使える(普通は webpack に含まれてると推測) 
ES6 の基礎文法だいじ
UI コンポーネントを分けて再利用考えて作って、UI コンポーネントの
header,
logo
title
nav
article
hooter
って感じのツリーも意識しよう
State, props をちゃんと使おう

応用として context, ref, useEffect も使おう!

残りはこのように React の大枠のガイドが書いてあった。

読破!

Top comments (0)