欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

graphQL在前端vue中使用實(shí)例代碼

 更新時(shí)間:2023年03月24日 14:42:37   作者:勇敢*牛牛  
這篇文章主要介紹了graphQL在前端vue中使用過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

上回說(shuō)到,那個(gè)請(qǐng)求攔截的一個(gè)過(guò)程,我上次不會(huì)看官網(wǎng)教程,這次,終于有了新的發(fā)現(xiàn)。

之前介紹過(guò)vue中使用GraphQL的實(shí)例代碼,喜歡的朋友可以點(diǎn)擊查看。

graphQL的interceptors(請(qǐng)求攔截器)

import ApolloClient from 'apollo-boost';


const apolloClient = new ApolloClient({
  // 你需要在這里使用絕對(duì)路徑
  uri: 'https://countries.trevorblades.com/',
  // headers:{"Authorization":"Basic aW5zaWdodHM6MTIz","content-type":"application/json"},
  request:(operation)=>{
    // 繼續(xù)上次的探索之旅,每次請(qǐng)求之前執(zhí)行這樣的代碼
    console.log("before=>",operation);
    // 每次請(qǐng)求都會(huì)執(zhí)行這個(gè)攔截器,可以設(shè)置請(qǐng)求頭
    operation.setContext({
      headers:{
        Authorization:"Basic aW5zaWdodHM6MTIz"
      }
    })
    console.log("after=>",operation.getContext().headers);
  },
  onError:(e)=>{
    // 失敗錯(cuò)誤信息打印
    console.log("err=>",e)
  },
  clientState:{
    
  },
})

export default apolloClient;

錯(cuò)誤處理

如果請(qǐng)求失敗,這里的情況也會(huì)分為兩種。
第一,可能是graphql的語(yǔ)法錯(cuò)誤導(dǎo)致的請(qǐng)求。
第二,可能是networkError導(dǎo)致的錯(cuò)誤,語(yǔ)法錯(cuò)誤。

const apolloClient = new ApolloClient({
  // 你需要在這里使用絕對(duì)路徑
  uri: 'https://countries.trevorblades.com/',
  // 請(qǐng)求選項(xiàng)
  fetchOptions: {
    credentials: 'include',//是否包含憑證
  },
  request:(operation)=>{
    operation.setContext({
      headers:{
        Authorization:"Basic aW5zaWdodHM6MTIz",
        contentType:"application/json"
      }
    })
  },
  onError:({ graphQLErrors, networkError })=>{
    if (graphQLErrors) {
     console.log("graphQLErrors");// 失敗錯(cuò)誤信息打印
    }
    if (networkError) {
      console.log("networkError");
    }
    
  },
  clientState:{
    
  },
})

因?yàn)榫W(wǎng)速問(wèn)題,我就暫時(shí)的探索到這兒。
前幾天的網(wǎng)絡(luò)出現(xiàn)了問(wèn)題,然后發(fā)現(xiàn)我前端作為學(xué)習(xí)的這個(gè)https://countries.trevorblades.com/地址,出現(xiàn)了變化,也就是UI界面人家可能重新采用了一個(gè)。

在這里插入圖片描述

變成了這種效果,可能是我網(wǎng)絡(luò)這邊有問(wèn)題,請(qǐng)求的時(shí)候有點(diǎn)延遲。
然后好像對(duì)部分請(qǐng)求類型做了補(bǔ)充和優(yōu)化。

前面學(xué)習(xí)了graphql的概念,graphql的部分語(yǔ)法,以及基礎(chǔ)查詢,帶參數(shù)的查詢,攔截器用法,錯(cuò)誤處理。接下來(lái)深入學(xué)習(xí)一下,上傳json字符串,和如何去上傳和請(qǐng)求流式文件并轉(zhuǎn)化。

目前為止,我們只討論過(guò)簡(jiǎn)單的字符串等標(biāo)量值作為參數(shù)傳遞給字段,但是你也能很容易地傳遞復(fù)雜對(duì)象。這在變更(mutation)中特別有用,因?yàn)橛袝r(shí)候你需要傳遞一整個(gè)對(duì)象作為新建對(duì)象。在 GraphQL schema language 中,輸入對(duì)象看上去和常規(guī)對(duì)象一模一樣,除了關(guān)鍵字是 input 而不是 type。

為了方便演示學(xué)習(xí),我又找了一個(gè)graphql的接口
https://hasura.io/learn/graphql/graphiql

這里的話,可以使用一些選項(xiàng)的配置,幫助我們快速直觀的理解文檔描述。查詢這樣的數(shù)據(jù)。

首先大體學(xué)習(xí)一哈:
這里有個(gè)特別好的地方就是有Authorization的認(rèn)證,這時(shí)候就得按照人家的要求來(lái)寫了。那就可以通過(guò)請(qǐng)求攔截器來(lái)加上這個(gè)認(rèn)證即可。所以這里的兩個(gè)錯(cuò)誤處理就特別的好了。

在這里插入圖片描述

所以就是和配置axios一樣,先來(lái)配置好這個(gè)二次封裝的(Graphql):

import ApolloClient from 'apollo-boost';
import store from '@/store';

const apolloClient = new ApolloClient({
  uri: 'https://hasura.io/learn/graphql',
  fetchOptions: {
    credentials: 'include',//是否包含憑證
  },
  request:(operation)=>{    
    operation.setContext({
      headers:{
        Authorization:"Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik9FWTJSVGM1UlVOR05qSXhSRUV5TURJNFFUWXdNekZETWtReU1EQXdSVUV4UVVRM05EazFNQSJ9.eyJodHRwczovL2hhc3VyYS5pby9qd3QvY2xhaW1zIjp7IngtaGFzdXJhLWRlZmF1bHQtcm9sZSI6InVzZXIiLCJ4LWhhc3VyYS1hbGxvd2VkLXJvbGVzIjpbInVzZXIiXSwieC1oYXN1cmEtdXNlci1pZCI6ImF1dGgwfDY0MGZkYTc1MjE5MjBmOGQzNDJiODA0YiJ9LCJuaWNrbmFtZSI6IjIzNjgyMzU1NDQiLCJuYW1lIjoiMjM2ODIzNTU0NEBxcS5jb20iLCJwaWN0dXJlIjoiaHR0cHM6Ly9zLmdyYXZhdGFyLmNvbS9hdmF0YXIvODA2YmJhMzNjYjUxNzg2MmE2M2UwMDAwM2Q4ZmIwZTc_cz00ODAmcj1wZyZkPWh0dHBzJTNBJTJGJTJGY2RuLmF1dGgwLmNvbSUyRmF2YXRhcnMlMkYyMy5wbmciLCJ1cGRhdGVkX2F0IjoiMjAyMy0wMy0yMVQwODozOTozNC43MTBaIiwiaXNzIjoiaHR0cHM6Ly9ncmFwaHFsLXR1dG9yaWFscy5hdXRoMC5jb20vIiwiYXVkIjoiUDM4cW5GbzFsRkFRSnJ6a3VuLS13RXpxbGpWTkdjV1ciLCJpYXQiOjE2NzkzODc5NzUsImV4cCI6MTY3OTQyMzk3NSwic3ViIjoiYXV0aDB8NjQwZmRhNzUyMTkyMGY4ZDM0MmI4MDRiIiwiYXRfaGFzaCI6IkpFZHZ0RFc1dnlhdnZ0TjNXZDliWXciLCJzaWQiOiJwT0l1Z2lWc1U1dTRNMGdMMHZmNWVZOTFnRi1Ma3hEQiIsIm5vbmNlIjoiQXFrSGRteURLaVFST3BZaWFmcTVlUXlLNW9pSH5KS3kifQ.A3LKFKBF0QFaNXPfUjr3ku8seevODVagp1hRkBN8SDN_m4zmvbNg1YOvZWwyQwHrRMZBadmM3WkQ4wkJBDO9YbWSrqh2XCeTNpRYMkcZ07_8gyUx77WKoXHSRoe3tZJjvBTgVleyJTHqYET-aI46pi7mamuZq7BuAHPZ-uKKBmErrhNGhari_X_Le9tNjJPfTGNuGovsXW3hK_TYiRC1eL5Ic_ekO0UDey9ph2qA05JJdJPwN2ZqFhwRQ3Cgdn0kIUPB_dIZFn2aD_PF78jdGGyUjFEES9xd-MbNfKpphB0lknUSTIcP0SyckVLmi0WW1CawAdHZCZke6KQs5QsKWw",
        contentType:"application/json"
      }
    })
  },
  onError:({ graphQLErrors, networkError })=>{
    if (graphQLErrors) {
     console.log("graphQLErrors:",graphQLErrors[0].message);
    }
    if (networkError) {
      console.log("networkError:",networkError);
    } 
  },
})

export default apolloClient;

在代碼中使用這個(gè)接口。

import gql from 'graphql-tag'
import apolloClient from './graphql'

export function one(){
    return apolloClient.query({
      query:gql`query{
        users(limit: 5) {
          name
          id
        }
      }`
    })
}

在這里插入圖片描述

咋們的第三波的探索就此展開。。。。。。

到此這篇關(guān)于graphQL在前端vue中使用過(guò)程的文章就介紹到這了,更多相關(guān)graphQL vue使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue富文本框(插入文本、圖片、視頻)的使用及問(wèn)題小結(jié)

    vue富文本框(插入文本、圖片、視頻)的使用及問(wèn)題小結(jié)

    這篇文章主要介紹了vue富文本框(插入文本、圖片、視頻)的使用及問(wèn)題小結(jié),需要的朋友可以參考下
    2018-08-08
  • Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用

    Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用

    這篇文章主要給大家介紹了關(guān)于Vue CLI3基礎(chǔ)學(xué)習(xí)之pages構(gòu)建多頁(yè)應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue CLI3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • mpvue跳轉(zhuǎn)頁(yè)面及注意事項(xiàng)

    mpvue跳轉(zhuǎn)頁(yè)面及注意事項(xiàng)

    這篇文章主要介紹了mpvue跳轉(zhuǎn)頁(yè)面及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2018-08-08
  • 詳解Vue新增內(nèi)置組件的使用

    詳解Vue新增內(nèi)置組件的使用

    這篇文章主要為大家介紹了Vue新增內(nèi)置組件的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • VUE設(shè)置和清除定時(shí)器的方式及遇到的問(wèn)題

    VUE設(shè)置和清除定時(shí)器的方式及遇到的問(wèn)題

    ?最近需要再頁(yè)面里做個(gè)倒計(jì)時(shí),發(fā)現(xiàn)用clearInterval()清除定時(shí)器失效,下面這篇文章主要給大家介紹了關(guān)于VUE設(shè)置和清除定時(shí)器的方式及遇到的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • vue中electron框架自定義外部配置文件的配置與讀取辦法

    vue中electron框架自定義外部配置文件的配置與讀取辦法

    使用Electron開發(fā)本地跨平臺(tái)的本地程序時(shí),有時(shí)需要添加一些程序的配置文件,下面這篇文章主要給大家介紹了關(guān)于vue中electron框架自定義外部配置文件的配置與讀取的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • vue中table表頭單元格合并(附單行、多級(jí)表頭代碼)

    vue中table表頭單元格合并(附單行、多級(jí)表頭代碼)

    本文主要介紹了vue中table表頭單元格合并(附單行、多級(jí)表頭代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue 監(jiān)聽 Treeselect 選擇項(xiàng)的改變操作

    vue 監(jiān)聽 Treeselect 選擇項(xiàng)的改變操作

    這篇文章主要介紹了vue 監(jiān)聽 Treeselect 選擇項(xiàng)的改變操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法

    使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法

    這篇文章主要介紹了使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue3項(xiàng)目keepAlive使用方法詳解

    vue3項(xiàng)目keepAlive使用方法詳解

    keepalive是Vue的內(nèi)置組件,作用是將組件緩存在內(nèi)存當(dāng)中,防止重復(fù)渲染DOM,屬于消耗內(nèi)存獲取速度,這篇文章主要介紹了vue3項(xiàng)目keepAlive使用方法,主要將keepaliev在vue3.0中的用法,需要的朋友可以參考下
    2024-03-03

最新評(píng)論