【问题标题】:Differences between MVC routing and SPA routing ?MVC 路由和 SPA 路由的区别?
【发布时间】:2016-04-20 09:12:44
【问题描述】:

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


  1. (/foo/bar get) 请求到达服务器
  2. 找到或未找到带有get方法的路由/foo/bar,如果找到,则路由通​​过调用服务于已填充相应数据的视图页面的方法来处理请求。
  3. 客户端获取一个包含许多指向其他页面的链接的 html 文档。
  4. 另一个链接是另一个过程,就像这个一样。

不过,我一直在学习 react+meteor pack,这是一个没有 ssr(服务器端渲染)的 SPA(单页应用程序)。让我感到困惑的最关键部分是路由。假设我的 SPA 有 3 条不同的路由。 (/), (/route2), (/route3)

  1. (/route2) 请求到达服务器。服务器提供什么服务? (/route2) 处于活动状态的整个应用程序代码还是什么?
  2. 假设我们在 (/) 路线上并单击 (/route2) 路线。那么现在发生了什么?是否反应清空#mainDıv 并放置相关组件,而不是从哪里,bundle.js 已经包含所有视图的 html 作为组件?
  3. 有没有办法只发送请求页面的html和js,显示内容后,后台获取其他页面的html和js,甚至没有客户端的感觉。这样当另一条路线被击中时,只有数据会在线上。
  4. 最后,只在请求时发送相关页面的html-css-js,不知道有没有这种技术,好像缺乏SPA经验,但不知道会不会缺乏SPA经验。最好能解释一下如何处理这个问题。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢清晰的解释完美地回答了我的第一个问题。所以我的其他问题正在解决同样的问题,有没有办法部分发送视图?正如你所说,如果服务器有一个入口点和一个引导程序,这怎么可能呢?我听说过 webpack 解决方案,但我不知道如何使用 webpack 解决这个问题?当我认为您刚刚回答时,只有服务器端解决方案是可以接受的。布拉布拉。我很困惑。
    • 作为我解释的必然结果......不,您通常不会向初始请求发送“部分视图”。您可以并且应该将您的 SPA 视图模板分解为单独的文件,这些文件根据需要从服务器加载;这些模板中的每一个都是“部分视图”。 Meteor到底是什么我不知道,没用过。
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2017-02-28
    • 2021-07-25
    • 2010-12-09
    • 2017-06-26
    • 2013-03-12
    相关资源
    最近更新 更多