Quasar SSR模式首次加载后表现如SPA?如何实现全页面服务端渲染?
解决Quasar SSR全页面服务端渲染的问题
要让所有页面导航都触发服务端渲染,核心是绕过客户端路由的接管,让每个页面跳转都发起完整的HTTP请求,具体可以通过以下方式实现:
替换所有
<router-link>组件为原生<a>标签
比如把<router-link to="/about">关于</router-link>改成<a href="/about">关于</a>,点击时会触发浏览器完整页面请求,服务器会重新渲染对应页面并返回完整HTML。在Vue组件的编程式导航中,用
window.location.href替代this.$router.push
比如把this.$router.push('/contact')改成window.location.href = '/contact',强制触发服务端请求而非客户端路由跳转。可选:禁用客户端路由(不推荐,会丢失SPA流畅性)
若希望完全禁用客户端路由,可在quasar.config.js的build配置中调整路由模式,这会让应用退化为传统多页面应用:build: { vueRouterMode: 'hash' }
注意:上述方式会牺牲客户端路由的无刷新流畅性,但能确保所有页面均由服务端渲染后返回完整HTML。
内容的提问来源于stack exchange,提问作者yyhnfd
相关产品推荐
相关产品推荐

