【问题标题】:Can I have multiple SPAs in the same app or use history and hash routing in the same app?我可以在同一个应用程序中拥有多个 SPA,或者在同一个应用程序中使用历史记录和哈希路由吗?
【发布时间】:2018-07-30 05:56:40
【问题描述】:

我正在构建一个应用程序,并希望在我网站的不同页面中有多个 Vue 实例!

有没有办法在同一个应用程序中使用历史路由和“哈希”路由,这样我就可以拥有这样的 URL。

www.mysite.com/blog/seo-friendly-content
www.mysite.com/blog/google-can-see-this
www.mysite.com/#/something-cool/state-preserved
www.mysite.com/#/cool-but-not-indexed

我的应用程序的一部分需要提供对 SEO 友好的内容,而一部分有很多动态内容。我不想强迫用户发出另一个服务器请求以在应用程序的“SPA”部分加载一个完全不同的页面!

我想我可以提供手动创建的静态 HTML 页面,但如果可能的话,我想使用 Vue 路由器来处理路由!

我在 Vue.js 文档中找不到任何关于此的内容。有人做过这样的事吗?

【问题讨论】:

    标签: vue.js vuejs2 vue-router


    【解决方案1】:

    如果你有多个根 Vue 实例,那么你不能有一个路由器实例。从根本上讲,您的应用程序需要在服务器级别进行路由拆分。这意味着您的客户端-服务器路由器无法单独解决此问题。

    你需要的是SSR

    使用 SSR,您的第一个页面(无论用户首先访问哪个页面)都将由服务器预渲染。然后任何时候,用户导航到另一个页面,它不会是整页刷新。它将由您的客户端路由器处理。

    现在是 2018 年,我强烈建议您使用 HTML5 路由,而不是基于哈希的路由。

    此外,如果您的应用程序非常大并且具有不同的基于角色的视图,请考虑使用 micro-frontends

    【讨论】:

    • 我想这是有道理的!我只是认为服务器端渲染意味着它必须重新加载整个页面,但我想我错了?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 2023-01-13
    • 1970-01-01
    • 2011-06-19
    • 2018-08-05
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多