どうもこんばんわ。
Next.jsへ移行したらなんか読み込みが早くなった気がする。TypeScriptのサポートがいいね!
Internet Explorer 11 でも見れなくはないですね。
先人が頑張ってPolyfillしたんかな、、、お疲れ様です
Nuxt.js からの移行
nuxt/content で使ってた機能
Markdownのテーブル(表)、打ち消し線、URLの自動リンク機能は標準機能ではない!
すべて有志の拡張機能だったんですね。
というわけで、remark-gfm
を入れます。
npm i remark-gfm
あと表には CSS を当てないと見ずらいですね。
Markdownに埋め込んだHTMLも対応させる
npm i rehype-raw
で対応できます
getStaticPaths と getStaticProps の動的ルーティング
[ここの名前].tsx
←ここの名前 の部分がキーになります。注意して下さい
ReactのJSX(TSX)の中で条件付きレンダリング
これ使っていいのか知らんけど面白いので使ってます。
Jetpack Compose
と違って、returnでJSXを返す必要があるんだけどJSX内ではifが書けない。
代わりに&&
を使って左側がtrueの場合は右側に進むことを利用した方法でかける。かしこい!
https://ja.reactjs.org/docs/conditional-rendering.html#inline-if-with-logical--operator
ダークモード
MUI
の機能でできます。
一応色置いておきます。
ダークモードスイッチのイベントはProps
でスイッチの切り替えバケツリレーしてます。
正攻法はわからん。頻繁に使うもんじゃないしいいんじゃね?
ついでにシステム設定のダークモードも反映させるようにしました。Win10で確認した
Android 12 みたいなスイッチ
ここに例があります。thx!!!
https://mui.com/components/switches/#customization
SVG画像の色を簡単に変えられると思ってた
AndroidだとImageView#setTint() だっけ?
できるけどCSSにはそういう機能無いらしい。
なのでこういうCSSをかけばいいと思います。私もよく知らないので詳しくは 属性セレクター とかで検索してください。
!important
を追記すればsvg内のpath、circleの色も上書き出来ます。使っていいのかは知らんけど
pages/404.tsx
参照
サイトマップ
https://github.com/iamvishnusankar/next-sitemap
を利用することで簡単に作成できます。
いれて
npm install --save-dev next-sitemap
package.json
があるフォルダにnext-sitemap.config.js
を作成します。
公式ではnext-sitemap.js
を作れと言ってますが、Windowsの場合は駄目だと思います。
(Windowsだとどうやら 環境変数 よりも フォルダ内ファイル が優先されるらしい)
あとはビルド時に生成するようにpackage.json
に追記すればおk
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"postbuild": "next-sitemap --config next-sitemap.config.js",
"deploy": "npm run build && npm run postbuild && npm run export"
},
Google Analytics 4 を入れる
Googleさんが定期的にメールで GA4いかが・・ ってメールで送ってくるので対応した。
というかGA4
、これ今までのUA
を置き換えるやつかと思ってたんだけど、どうやら違うみたい?
なんかユニバーサルアナリティクスで集めてた時代のデータは引き継いでくれないっぽいし何やねん・・・
GA4 設定アシスタント ウィザードでは、作成した GA4 プロパティが過去のデータに基づきバックフィルされることはありません。GA4 プロパティに保存されるのは、設定後に発生したデータのみです。過去のデータを参照する際は、ユニバーサル アナリティクス プロパティのレポートを使用してください。
https://support.google.com/analytics/answer/9744165?hl=ja&utm_id=ad#zippy=%2Cご自身またはウェブ-デベロッパーがウェブページに手動でタグを設定する場合
というわけで、今のところはGA4
とUA
の両方で集計するようにしてあります。
head
内にGA4
のJavaScriptを差し込むようにすればいいです。
GA_TRACKING_ID
にはGA4の測定ID、UA_TRACKING_ID
にはUAのトラッキングコードを変数に入れておいて下さい。
多分Google アナリティクス 4 プロパティの設定アシスタント
を利用しないと駄目かも?
なんか調べてるとnext/script
でいい感じに読み込む書き方をしてる例がありますが私の環境では重複して送信されたので辞めました。
Material-UIのアイコンを書くときの注意点
名前付きインポートだと開発環境の読み込みが遅くなります。
詳しくは:https://takusan.negitoro.dev/posts/next_js_mui_material_icon_build_speed/
今回はBabelの設定せずに個別にインポートするようにしてます。
ちなみにこれはKotlinで該当のJavaScriptを渡すと変換してくれるコード。
Netlifyでホスティングする際は
SSGモードの場合はプラグインをOFFにする必要があります。
Netlifyのサイトの設定から、Build & Deployを開いて、環境変数に追加します。
ちなみにビルドコマンドと公開するフォルダは
Build commands:npm run build && npm run export
Publish directory:out
になります~
https://docs.netlify.com/configure-builds/common-configurations/