Expo + Next.js

React Nativeの開発環境であるExpoにてWebも開発可能ですが、こちらにNext.jsを使えるということで試してみました。

Next.jsはReactでできているのですが、ブラウザ側でのレンダリングを行うSingle Page Aplication(以下、SPA)だけでなく、サーバサイドでのレンダリング(以下、SSR)が可能。それにより、SEO上のクローリング対策、ページスピードの向上などが期待できるとのこと。

Expoの
Using Next.js with Expo for Web - Expo Documentation
というページに、Expoでの使い方が書かれてありました。

既存のプロジェクトに追加するなどもあり、やってみたのですがうまく動かず。とりあえず、書かれてる通りに新規作成からテスト。
まずExpoの環境などは最新に上げときます。
また、パッケージ管理にnpmでなくてyarnが必要になります。

npx create-react-native-app -t with-nextjs
でプロジェクトを作成
yarn next dev
でスタートです。
http://localhost:3000/ に行くと
下記のようなページが表示されれば成功!

ちなみに、ここでいつも通り
expo start
にて、スマホアプリで動くか試したところ問題なし。
またブラウザで動かすReact版でも動くか試したところ、問題なく同じものが表示されました。
単純なので、違いがわからず。
  "devDependencies": {
  "@babel/core": "^7.12.9",
       "@expo/next-adapter": "~2.1.52"
}

 開発用ライブラリにexpo/next-adapterが入ってるぐらい。
Expoを使うメリットとしては、React Nativeでコードを書くと
それをReactに変換してWebの開発もできることだったので、Next.jsに変換してくれるのかとなりますでしょうか。

因みに既存のプロジェクトに後からnext.js対応にすることもできるようなこと記載ありましたが、試したところいろいろとエラーが出るようなのと既存プロジェクトをnext.js対応に完全に変換するわけではなさそうです。


この記事が気に入ったらサポートをしてみませんか?