如果有这样的 Vue SSR插件,你会想要吗?
发布于 4 年前 作者 1340641314 4770 次浏览 来自 分享

1.png

目前还在编写文档和完善测试用例的阶段,忍不住想要分享一下。

12 回复

保持简单,输出json这种就不该和渲染搞到一起,做加法后面会很难控制的。

@i5ting 其实在我们公司内部的需求是,比如A的服务会直出html页面,但是B的服务也需要调用到A服务的某个页面或者某个组件,所以这个时候就由A的服务提供一个API,在B的服务通过远程组件调用。

看上去 很美好, 不知道内功修炼的如何

@zanjs 这里最难搞的,还是一个页面,多次调用其它服务,并且其它服务都是使用历史模式的。vue-router 对一个一面多个路由同步支持不够 /a/ A的服务 /b/ B的服务

从A服务跳转到B服务,如何做到无刷新跳转,这一块的难度比较大。因为按照我们的设想,A服务挂了,B服务的页面还能被用户正常的访问。

@1340641314 子路由也不会重新刷新啊

一个页面,可以有多个ssr实例? 我可以理解为一个实例即为一次reqeust?楼主是想面向组件开发吧

@mosaic101 分两种情况 第一种,在服务器端拼接html的时候,就是由多个SSR实例渲染出来的内容,比如你有个服务,专门放置一些公共的网站头部的,可以通过RPC或者HTTP请求拿到这个网站头部,和当前服务的SSR实例拼接成一个完整的页面 第二种,就是纯粹的在客户端渲染请求,也是一样的逻辑。请求公共头部的服务和内容区的服务。

在客户端,如果多服务,都是采用历史模式,就需要做到多服务之间的路由协同。

比如你有A服务、B服务,A和B都依赖C服务的网站头部,假设要更新网站头部,只需要更新C服务即可。如何直接把网站头部打包到A、B服务,那么更新网站头部的时候,就需要同时更新两个服务了。在我司的实际场景中,我们依赖网站的公共头部的项目多达十几个,每次更新公共导航都会非常耗费时间精力,为了解决这个问题,我们才耗费这么大的精力去搞这个项目。

@ganshiqingyuan 因为页面上有多个Vue 的根实例,所以路由也需要进行多次 new VueRouter({mode: ‘history’}),需要保证多个Vue根实例之间的路由能够协同工作。

目前该项目已经应用于多个内部的项目,但是需要开源的话,还需要花费时间完善一下文档、测试用例之类的。希望在2020年也能给社区一些回馈吧。

@1340641314 了解了,如果client框架不统一的话,就不适用了

@mosaic101 从原则上来讲,客户端框架即使不统一,也是可以使用的。比如React也是可以远程调用 Vue组件的。只不过需要自己实现加载js、css的过程。

回到顶部