我正在访问一个在客户端呈现的页面,并使用Apollo客户端从客户端的Web浏览器的API服务器中检索数据。
const { data, error, loading } = useQuery(...);
console.log('data', data);
当我访问此页面时,客户端和Web服务器都console.log非空数据。
为什么console.log调用填充了数据,即使是在服务器上?据推测,Web服务器没有调用API服务器(事实上,我很确定它甚至没有被授权)。浏览器是否将其控制台日志发送回服务器?
下一个V12
1条答案
按热度按时间r7knjye21#
通常情况下,Next.js prerendering会在服务器上运行useQuery钩子,但是useQuery会返回一个没有数据的存根。
在上面的例子中,第三方扩展(next-with-apollo)调用了函数
getDataFromTree
,它遍历了整个树,在服务器端和客户端运行所有查询。标签:apollo-client in next.js with
next-with-apollo
VS the approach shown in next.js docs FAQ (no use ofgetDataFromTree
)