MVC路由和SPA路由之间的差异?

时间:2016-04-20 09:12:44

标签: javascript meteor model-view-controller reactjs single-page-application

我知道 MVC 应用程序如何处理路由,

  1. (/ foo / bar get)请求命中服务器
  2. 找到或找不到带有get方法的
  3. route / foo / bar,如果找到的路由通过调用一个方法来处理请求,该方法为填充了相应数据的视图页面提供服务。
  4. 客户端获取一个包含许多其他页面链接的html文档。
  5. 另一个链接是另一个与此类似的程序。
  6. 但是,我一直在学习react + meteor pack,这是一个没有ssr(服务器端渲染)的SPA(单页面应用程序)。令我困惑的最关键的部分是路由。让我说我的SPA有3条不同的路线。 (/),(/ route2),(/ route3)

    1. (/ route2)请求命中服务器。服务器服务的是什么?整个应用程序代码用(/ route2)激活还是什么?
    2. 假设我们在(/)路由并点击(/ route2)路由。那么现在发生了什么?反应是否清空#mainDıv并改为放置相关组件,从哪里来,已经包含所有视图'html作为组件的bundle.js?
    3. 有没有办法只发送请求的页面的html和js,并在显示内容后,在后台获取其他页面的html和js,没有客户端甚至感觉到。因此,当命中另一条路线时,只有数据才会出现在线路上。
    4. 最后,只有在请求时才发送相关页面的html-css-js,我不知道这种技术是否存在,似乎缺乏SPA经验,但我不确定如果它缺乏SPA经验。解释如何处理这个问题会很棒。

1 个答案:

答案 0 :(得分:4)

对于SPA,您通常(读取:几乎总是)将服务器配置为提供相同的引导程序HTML / Javascript ,无论已请求哪个URL 。对/route2的请求将获得与/或任何其他URL请求相同的HTML响应(除非您因特定原因而有特定的例外情况)。 SPA始终以相同的引导代码开始,并检查当前浏览器的URL,然后根据需要动态加载内容。这个内容的加载方式和加载时间取决于特定的框架/代码/环境/配置,但是最终,DOM的内容会被Javascript动态替换。