React Relay 和服务器端渲染

Posted

技术标签:

【中文标题】React Relay 和服务器端渲染【英文标题】:React Relay and server side rendering 【发布时间】:2016-10-12 11:05:19 【问题描述】:

我一直在开发一个使用 react 构建的同构应用程序,并且我已经阅读了有关使用 Relay.jsGraphQL 进行客户端-服务器交互的信息。 我一直在想,在使用 Relay.js 时,特别是在使用 react 的服务器端渲染和同构应用程序开发时,是否有任何特殊设置或要记住的事情?

【问题讨论】:

【参考方案1】:
    您需要使用 babel 将 relay 转换为 graphql 查询。 缓存需要来自 facebook 或类似的数据加载器。 您的数据模型需要完全规范化才能使用上述内容。 尽量避免 JSON 作为列类型,在 graphql 中难以描述 将graphiql 用作browser plugin 或独立使用

【讨论】:

【参考方案2】:

React Relay 目前没有针对同构应用程序的“开箱即用”解决方案。 不过还是有办法的:

isomorphic-relay:npm 包,其中包含有关如何轻松集成的非常详细的文档。

isomorphic-relay-router:使用isomorphic-relayreact-router-relay 添加服务器端渲染支持的npm 包。

据我了解,正在添加服务器端渲染,但没有 ETA。

【讨论】:

以上是关于React Relay 和服务器端渲染的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-router-relay 和 react-rails 进行服务器端渲染

Relay、React JS 和 Graphql Application 的独立前后端应用

React 服务端渲染完美的解决方案

2019大前端热门技术流之React服务器端渲染NextJS实战

React 服务端渲染与预渲染

当我在服务器端更新架构时,中继/GraphQL 架构缓存未更新