程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Apollo Client 处理前端的渐进式披露大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Apollo Client 处理前端的渐进式披露?

开发过程中遇到使用 Apollo Client 处理前端的渐进式披露的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Apollo Client 处理前端的渐进式披露的解决方法建议,希望对你解决使用 Apollo Client 处理前端的渐进式披露有所启发或帮助;

在我的项目中,我们计划实施渐进式披露(如果用户具有权限,则显示部分 UI 数据)。基本上,我们使用 react + apollo clIEnt with hooks + graphqltag。

但问题不在于如何隐藏 UI 的某些部分,而是如何按权限拆分查询。所以现在对于页面,我们创建了一个包含许多不同类型数据的“子查询”的查询。例如:

sell

如果用户有权限,现在这个查询的每个部分都将可用。在后端,它已经处理了。我们抛出空/空数组和错误。但是 IMO 我们甚至不应该要求这部分数据。这就是问题所在。对于如何使用 apollo 客户端执行此操作,您有什么建议吗?

现在我有两个想法:

  1. 如果用户有权限,则将查询拆分为单个并进行几次 API 调用,否则跳过它
  2. 编写一个自定义函数,我将在其中作为对象的 prop 数组传递,包括查询定义和查询所需的权限。我将根据权限过滤此数组,并从 export const GET_DATA_X= gql` query getDatax( $applicationID: ID! $dateFrom: String! $dateto: String! $displaymode: String! ) { applicationShiPDAtes( applicationID: $applicationID dateFrom: $dateFrom dateto: $dateto displaymode: $displaymode ) { periodStartDate dates } graphStatistics( applicationID: $applicationID dateFrom: $dateFrom dateto: $dateto ) { @R_23_10586@lVisits @R_23_10586@lConversions conversionRate } } `; applicationShiPDAtes 等小查询定义中创建一个大查询,例如 graphStatistics,其中将包含很少的“子查询”

解决方法

就像@xadm 提到的那样,指令将是最好的解决方案。

大佬总结

以上是大佬教程为你收集整理的使用 Apollo Client 处理前端的渐进式披露全部内容,希望文章能够帮你解决使用 Apollo Client 处理前端的渐进式披露所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。