web-dev-qa-db-ja.com

react-routerとexpress routes.jsを使用した違いは何ですか

私はreact、redux、expressを使用してプロジェクトを行っていますが、react-routerとexpress routes.jsの違いはわかりませんが、2つを組み合わせる必要がありますか?

https://github.com/reactjs/react-router

助けてくれてありがとう :)

29
fandro

注: このstackoverflow post には、非常に役立つ例とコードが含まれています。

それは古典的な誤解です。 Expressはバックエンドルートを処理し、React(react-routerまたはフロントエンドルーティングライブラリを使用)はフロントエンドルートを処理します。 ReactアプリケーションはおそらくSPA(シングルページアプリケーション)になります。つまり、サーバー(エクスプレスなど)がindex.htmlに対応し、reactがここからアプリケーションを処理する必要があります。つまり、Reactはルートを評価し、レンダリングするビューを決定します。

したがって、ユーザーが/accounts/meのようなルートを進んだときに、サーバーは必要に応じてフロントエンド(react)アプリケーションにサービスを提供する必要がありますが、/api/users/meのようなものがデータをレンダリングします。これは単なる例です。

「通常の」使用法は、Expressを使用してデータ(via API)を処理し、Reactを使用してのみアプリケーション(ページとビュー)を処理することです。

サーバーレンダリングを使用している場合は、もう少し複雑になります。

ほとんどの場合、はい、両方を使用する必要があります。

編集:あなたの質問があなたの使用法とあなたがしたいことについてより具体的であるならば、答えるのはより簡単です。

編集2:ほとんどの場合、フロントエンドアプリケーションとAPI(データ)を提供するサーバーとは異なります。もしそうであれば、いくつかのルートがサーバーにヒットしたときにアプリケーションが送信されることを確認してください:すなわち/home/about(明らかに-ここでは-apiルート)は、フロントエンドアプリケーションとしてindex.htmlを送信する必要があり、Reactは何をレンダリングするかを決定するためにルートを処理します。

47
Cohars