如何配置Laravel Lighthouse为GraphQL提供服务器端渲染?

如何配置Laravel Lighthouse为GraphQL提供服务器端渲染?,graphql,react-apollo,apollo-client,laravel-lighthouse,Graphql,React Apollo,Apollo Client,Laravel Lighthouse,我正在使用Apollo客户端作为我的React前端,以便能够使用由托管的GraphQL 正常的用例是有效的,但我现在发现自己面临某些情况,我希望在初始页面请求中预取GraphQL结果,而不是让浏览器加载页面,然后发送单独的ajax查询 我看到它同时支持“存储再水化”和“服务器端渲染”,但我还没有在Lighthouse中找到任何关于如何实现这一点的文档 我认为我的刀片视图需要包含如下内容: <script> window.__APOLLO_STATE__ = '

我正在使用Apollo客户端作为我的React前端,以便能够使用由托管的GraphQL

正常的用例是有效的,但我现在发现自己面临某些情况,我希望在初始页面请求中预取GraphQL结果,而不是让浏览器加载页面,然后发送单独的ajax查询

我看到它同时支持“存储再水化”和“服务器端渲染”,但我还没有在Lighthouse中找到任何关于如何实现这一点的文档

我认为我的刀片视图需要包含如下内容:

<script>        
    window.__APOLLO_STATE__ = '{!!$postsGqlResultJson ?? "null" !!}'; // https://www.apollographql.com/docs/react/performance/server-side-rendering/
</script>
我认为Lighthouse可能会提供某种PHP函数,相当于
useQuery
,我可以以某种方式提供相同的参数(POSTS gql和options对象),它将返回结果数据的JSON字符串,如gql中所述嵌套


我误解了吗?我真的很感谢你的帮助。:-)

您描述的Apollo客户端功能似乎与前端有关,并假设您是从Node.js服务器为前端提供服务


Lighthouse没有什么特别的事情要做——从它的角度来看,查询是作为服务器端渲染的一部分发送还是从客户端发送并不重要。

非常感谢您的回复,spawnia!我更新了上面的问题以澄清。我真的很感激你的想法。SR和SSR选项适用于不同URL/路由的precache/prerender frontend/react app state/view-在gatsby(完全静态内容可能)或nextjs中用于SEO原因的模式/技术。。。如何为您的前端/react应用程序提供服务?@xadm我的后端是Laravel Lighthouse(PHP)。@xadm这很酷,我喜欢Spatiale,但我想问的是如何调用(从Laravel而不是JS中的任何地方,例如Apollo)生成GraphQL JSON结果的Lighthouse函数。谢谢。然后编辑标题/问题。。。。您正在寻找像这样的“php graphql客户端”
const POSTS = gql`
    query Posts($first: Int, $page: Int) {
        posts(first: $first, page: $page, orderBy: { field: CREATED_AT, order: DESC }) {
            paginatorInfo {
                currentPage
                hasMorePages
                total
            }
            data {
                id
                ...
            }
     }
`;
const options = {
  variables: {
        first: 100,
        page: 1,
    }
};
const { loading, error, data } = useQuery(query, options);