本文介绍npm包 @graphql-tools/graphql-tag-pluck 的使用教程。
简介
@graphql-tools/graphql-tag-pluck 是一个可以从GraphQL标记中提取查询和变量,生成GraphQL请求对象的工具。它常用于将前端代码与后端GraphQL API进行衔接。
安装
npm install --save-dev @graphql-tools/graphql-tag-pluck
用法
- 编写GraphQL标记文件(.graphql或.gql后缀名)。
query getUser($id: ID!) { user(id: $id) { id name email } }
- 在JavaScript文件中引入 @graphql-tools/graphql-tag-pluck 包。
const gqlPluck = require('@graphql-tools/graphql-tag-pluck');
- 将GraphQL标记解析为一个对象。
const gqlOpts = gqlPluck( './path/to/graphql-file.graphql', // 文件路径 { skipIndentation: true }, // 可选选项 );
- 使用解析出的对象构建GraphQL请求。
-- -------------------- ---- ------- ----- - ------------ - - -------------- ----- - ------- - - ---------------- ----- - ------------- - - --------------------------- ----- ----- - -------------- -- ------------ ----- --------- - - --- - -- -- -- ----- -------- - ----------------------------- -- ----- ----- ------ - --- ------------------------ ------ --------------- ---------- ---------- -- ------------------ ---------- -- --------------------
选项
@graphql-tools/graphql-tag-pluck 包支持以下选项:
- skipIndentation (可选):是否跳过缩进,默认为
false
。
示例代码
- index.js
-- -------------------- ---- ------- -- -------- ----- -------- - -------------------------------------------- ----- - ------------ - - -------------- ----- - ------- - - ---------------- ----- - ------------- - - --------------------------- ----- -------- - -------------------------------- ----- ------- - ------------------ - ---------------- ---- --- ----- ----- - -------------- ----- --------- - - --- - -- ----- -------- - ----------------------------- ----- ------ - --- ------------------------ ------ --------------- ---------- ---------- -- ------------------ ---------- -- --------------------
- user-query.graphql
-- -------------------- ---- ------- - ------------------ ----- ------------ ---- - -------- ---- - -- ---- ----- - -
总结
@graphql-tools/graphql-tag-pluck 是一个非常实用的npm包,可以大大简化前端与后端API的连通性。在实际开发中,可以结合GraphQL、React等库框架,进一步提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc8a2b5cbfe1ea061230a