V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shenqi
V2EX  ›  前端开发

想了解下你们是怎么在前端使用 graphql 的

  •  
  •   shenqi ·
    shenqihui · 2020-10-20 16:12:16 +08:00 · 1025 次点击
    这是一个创建于 1283 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们目前

    目前在项目上已经使用 graphql 有 2 年多了,当时开始之前 dva + 实践派 restful,新项目开始的时候对于 graphql 是一脸懵逼,查了一堆资料,也尝试了当时的 graphql 库,最后也放弃治疗,自己手动写 post,强行将 graphql 在项目上使用了。

    然后经过不断的偷懒工作,两年多下来,在前端项目上将 graphql 当成 restful 的方式使用,通过自动创建 post 体,只需要传输例如 teacher 表明自动生成 增删改查 之类常规接口,query 类型如果无特殊操作都能自动生成, 非常规 mutation 类型只需要传输 mutationType + 接口参数 。

    使用大概思路

    具体大概方式就是通过 __schema(生产会静态化)来查询语法文档,然后通过里面的字段关联,自动创建 post 的 body 信息,达到

    • qurey 类型查询能够自动化,传输 query 名称即可动态实时生成全字段查询。
    • mutation 类型通过传输 mutationType + 接口参数 就能发出更新请求。

    这背后夹带着结合业务时候进行构建语法字段的时候白名单和黑名单字段操作。

    例如我们最终的一个增删改查的 services,这样子就完成了个教师这个表的列表、详情、新增、删除等通用方法。

    import Factory from '@/services/_factory';
    import ServiceCommon from '@/services/common';
    
    const model = 'teacher';
    
    const Service = Factory({
      model,
    });
    return Service ;
    

    最后感觉就会已经是在前端领域脱离了真正 graphql 的意义了。(当然如果手动传输查询体中间的内容是支持的)

    最后

    想知道现在正在使用 graphql 的团队,除了 Relay 、apollo 之类的,有什么特殊的使用方式。

    1 条回复    2020-10-21 14:45:11 +08:00
    shenqi
        1
    shenqi  
    OP
       2020-10-21 14:45:11 +08:00
    没人看、、、
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2688 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:54 · PVG 23:54 · LAX 08:54 · JFK 11:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.