欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

前端如何調(diào)用GraphQLAPI-創(chuàng)新互聯(lián)

這篇文章主要介紹前端如何調(diào)用GraphQL API,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比龍安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋龍安地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。

GraphQL 既是一種用于 API 的查詢語言也是一個滿足你數(shù)據(jù)查詢的運行時。 GraphQL 對你的 API 中的數(shù)據(jù)提供了一套易于理解的完整描述,使得客戶端能夠準確地獲得它需要的數(shù)據(jù),而且沒有任何冗余。

GraphQL 有針對不同語言的服務端實現(xiàn),以幫助開發(fā)人員搭建 GraphQL Server。          (推薦學習:前端視頻)

而 gq-loader 是一個 webpack 插件,你可以認為它一針對前端項目的一種 client 端實現(xiàn),它的目的是幫助前端開發(fā)同學更簡便的調(diào)用 GraphQL API,它讓前端開發(fā)人員在使用 GraphQL 時更加方便,像普通 js 模塊一樣輕松自如,使前端開發(fā)人員能在 js 文件中通過 import 或 require 導入 .gql 和 .graphql 文件,然后直接調(diào)用。

并且它還支持通過 #import 語法導入其它 .gql 文件,比如 fragments。

#import 還提供了兩個別名,分別是 #require 和 #include,這兩個別名和 #import 的用法及行為完全一致。

安裝

npm install gq-loader --save-dev

或者

yarn add gq-loader

基本使用

如同其它 loader 一樣,首先,我們在 webpack.config.js 中添加 gq-loader 的配置

{  test: /\.(graphql|gql)$/,  exclude: /node_modules/,  use: {    loader: 'gq-loader'    options: {      url: 'Graphql Server URL'    }  }}

然后,我們就可以在 js 文件中通過 import 來導入 .gql 文件使用它了,我們來一個簡單的示例,假設已經(jīng)有一個可以工作的 Graphql Server,那么,我們先創(chuàng)建一個可以查詢用戶的 getUser.gql

#import './fragment.gql' query MyQuery($name: String) {  getUser(name: $name)    ...userFields  }}

可以看到,我們通過 #import 引用了另外一個 .gql 文件 fragment.gql,在這個文件中我們描術了要返回的 user 的字段信息,這樣我們就能在不同的地方「重用」它了,我們也創(chuàng)建一下這個文件

fragment userFields on User {  name  age}

好了,我們可以在 js 文件中直接導入 getUser.gql,并且使用它查詢用戶了,從未如此簡便,我們來看看

import getUser from './getUser.gql';import React from 'react';import ReactDOM from 'react-dom';async function query() {  const user = await getUser({ name: 'bob' });  console.log('user', user);}function App() {  return <button onClick={query}>click</button>;}ReactDOM.render(<App />, document.getElementById('root'));

在調(diào)用 getUser 時,我們可以給函數(shù)參數(shù)向 GraphQL 傳遞變量,這些變量就是我們的查詢參數(shù)。

自定義請求

默認 gq-loader 就會幫你完成 graphql 請求,但某些場景下或許你想自已控制所有請求,如果有這樣需要,我們還可以通過 request 屬性來「自定義」請求,看一下示例,需要先稍微改動一下 loader 配置

{  test: /\.(graphql|gql)$/,  exclude: /node_modules/,  use: {    loader: 'gq-loader'    options: {      url: 'Graphql Server URL',      //指定自動請求模塊路徑      request: require.resolve('your_request_module_path');    }  }}

在 your_request_module_path 填寫自定義請求模塊路徑,gq-loader 將自動加載并使用對應請求模塊,模塊只需要改出一個「請求函數(shù)即可」,看如下自定義示例

onst $ = require('jquery');//url 是要請求的 GraphQL 服務地址//data 是待發(fā)送的數(shù)據(jù)//options 是自定義選項module.exports = function(url, data, options){  //如果有需要還可以處理 options  return $.post(url, data);};

其中,options 是導入 .gql 文件后「函數(shù)的第二個參數(shù)」,比如,可以這樣傳遞 options 參數(shù)

import getUser from './getUser.gql';async function query() {  const options = {...};  const user = await getUser({ name: 'bob' }, options);  console.log('user', user);}

注意,gq-loader 的 extensions 無論配置何值,在 js 中 import 時都不能省略擴展名,此選項僅作用于 .gql 文件 import 其它 .gql 文件

以上是“前端如何調(diào)用GraphQL API”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:前端如何調(diào)用GraphQLAPI-創(chuàng)新互聯(lián)
當前網(wǎng)址:http://chinadenli.net/article8/cosgop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站關鍵詞優(yōu)化網(wǎng)站設計公司企業(yè)網(wǎng)站制作域名注冊網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設