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

Javascript 如何在多页面网站(非SPA)中使用react.js?,javascript,laravel,reactjs,browserify,Javascript,Laravel,Reactjs,Browserify,我有一个laravel应用程序。 对于具有此类路由的页面:/admin/entity/我希望使用带有react router的react组件来处理/admin/entity/:id路由 如果我使用browserify将所有组件捆绑在一个文件中,我无法从外部访问任何组件来渲染它,因为browserify将其包装为闭包。因此,我有几个问题: 我应该为每个页面创建单独的bundle.js文件并在该文件中显式呈现组件吗?还是应该将每个组件从jsx预编译到js,并从*.blade.php文件内联呈现?将r

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

如果我使用browserify将所有组件捆绑在一个文件中,我无法从外部访问任何组件来渲染它,因为browserify将其包装为闭包。因此,我有几个问题:
  • 我应该为每个页面创建单独的bundle.js文件并在该文件中显式呈现组件吗?
  • 还是应该将每个组件从jsx预编译到js,并从
    *.blade.php
    文件内联呈现?
  • 将react库包含到bundle.js中有意义吗?还是可以从视图中显式加载它?

    以下是我的观点:

    • 您应该将React和所有代码捆绑到所有页面中,这些页面将包含React组件呈现的任何部分(根据我收集的资料,
      /admin/entity
    • 您的React组件应始终呈现给特定元素(例如,一个空的
      ),并且应具有类似的配置,以便它忽略
      /admin/entity
      ,但呈现
      /admin/entity/:id
      。您面临的挑战是,任何指向不同
      :id
      URL的链接都应该使用
      链接
      组件,以最佳方式位于React组件内部。这将自动连接您的路由器
    您的路线可能如下所示:

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

    我相信,当您运行路由器时,如果浏览器的URL不是预期格式,React实际上不会呈现任何内容。

    如果您的包中有客户端路由器,那么它是否是单个包并不重要(出于这个原因)但如果我使用客户端路由器,它会捕获每个页面上的整个url,并告知在其他页面中找不到路由