如何在多页网站(非 SPA)中使用 react.js?

How to use react.js with a multi page website (Non SPA)?

我有一个 laravel 应用程序。 对于具有此类路由的页面:/admin/entity/ 我想使用带有反应路由器的反应组件来处理 /admin/entity/:id 路由。

如果我使用 browserify 将所有组件捆绑在一个文件中,我无法访问任何组件以从外部呈现它,因为 browserify 将其包装到关闭状态。因此,我有几个问题:

  • 我应该为每个页面创建单独的 bundle.js 文件并在该文件中显式呈现组件吗?
  • 或者我应该将每个组件从 jsx 预编译为 js 并从 [=13= 内联呈现它] 文件?
  • 将 React 库包含到 bundle.js 是否有意义,或者我可以从视图中显式加载它?

  • 这是我的意见

    • 您应该将 React 和所有页面中的所有代码捆绑在一起,这些页面将包含由 React 组件呈现的任何部分(根据我的收集,/admin/entity)。
    • 你的 React 组件应该总是渲染到一个特定的元素(例如,一个空的 <div>)并且应该有类似 React Router 的配置,这样它会忽略 /admin/entity 但渲染/admin/entity/:id。您的挑战是,任何指向不同 :id URL 的链接都应该最好位于 React 组件内部,使用 Link 组件。这将自动连接您的路由器。

    您的路线可能如下所示:

    <Route path="admin/entity/:id" handler={Entity} />
    

    我相信,当你 run 路由器时,如果浏览器的 URL 不是预期的格式,React 实际上不会呈现任何东西。