あくまで私見なので突っ込みどころは多々あるかと思いますが・・・
1.gatsby-browser.js
とは何の為にあるのか?
ブラウザでページを表示される段階で何かしらの処理を行いたい場合にここに記述します。
よくある使い方としては「全画面に対して適用させたいスタイルを読み込む」が挙げられます。
2.gatsby-config.js
とgatsby-node.js
との違い
gatsby-config.js
はプラグインやパスの設定など、静的な設定ファイルです。
それに対してgatsby-node.js
は、ビルド時(ソース諸々から静的なファイルを吐き出す段階)で実行されます。
3.スタイリング時、hoge-hoge
ではなくhogeHoge
としないといけない理由
これはReact
があくまでもJavascript
であるためその慣習(というか命名規則)に従っているためだと思います。
React公式 | JSXの導入に以下のような警告があります。
警告:
JSX は HTML よりも JavaScript に近いものですので、React DOM は HTML の属性ではなくキャメルケース (camelCase) のプロパティ命名規則を使用します。
JSX では例えば、class は className となり、tabindex は tabIndex となります。
同様にJSX
のスタイルを決定付ける各プロパティもキャメルケースで定義されているのだと思います。
4.<Img/>
と<Layout>
みたいにタグ終わりの前に/(スラッシュ)を必要なものと、いらないものとの違い
回答としては「children
を扱うコンポーネントか否か」です。
React
にはFunctionalComponent
というものがあります。
引数としてchildren
がもともと用意されており、<Component props={"hoge"}>
のようにプロパティ名を明示的に指定して値を渡す必要がありません。
例えば<Test>
というFunctionalComponent
があったとして、
jsx
1{/*①*/}
2<Test>hoge</Test>
3{/*②*/}
4<Test>
5 <div></div>
6</Test>
7{/*③*/}
8<Test/>
のいずれの書き方もできます。
①や②はchildren
として"hoge"
や<div></div>
を渡していますが、③は渡していない(≒省略してる)イメージです。
5.React
及びGatsby
はどの概念で設計されていますか?MVC?
MVC
を引き合いに出したのでフレームワークの話をしているのだと思います。
その上で回答するなら、感覚的にはReact
そものもがフレームワークという認識が近いかもしれません。
無理やりMVC
に当てはめるならVC
部分を担っています。
6.何がReact
固有の機能で何がGatsby
固有な機能なのか
Gatsby
もReact
なのでReact
固有というのはこの場合ないかと思います。
Gatsby
固有なのは、静的サイトジェネレータであるという点かなと思います。
React
(とmarkdown
)で書かれたソースをビルドすることで静的なHTML/CSS/Javascript
を吐き出しているのがGatsby
です。
その辺りは下記記事が詳しいかなと思います。
7.React
及びGatsby
が勉強できる良いリンク
まずReact
がどういうものなのかを理解した上でGatsby
を勉強するといいと思います。
React
については
などがいいかなと。
最後の記事はReact
の前段階として覚えておくとよいFlux
にも言及しています。
Gatsby
は正直、文献がまだまだ充実していない印象ですが
は自分も参考にしました。
Gatsby
については自分で環境を作ってあれこれいじった方がイメージが付きやすいかなと思います。
以上、長文失礼しました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/25 11:25