最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

graphQL在前端vue中使用實例代碼

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

上回說到,那個請求攔截的一個過程,我上次不會看官網教程,這次,終于有了新的發(fā)現(xiàn)。

之前介紹過vue中使用GraphQL的實例代碼,喜歡的朋友可以點擊查看。

graphQL的interceptors(請求攔截器)

import ApolloClient from 'apollo-boost';


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

export default apolloClient;

錯誤處理

如果請求失敗,這里的情況也會分為兩種。
第一,可能是graphql的語法錯誤導致的請求。
第二,可能是networkError導致的錯誤,語法錯誤。

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

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

在這里插入圖片描述

變成了這種效果,可能是我網絡這邊有問題,請求的時候有點延遲。
然后好像對部分請求類型做了補充和優(yōu)化。

前面學習了graphql的概念,graphql的部分語法,以及基礎查詢,帶參數(shù)的查詢,攔截器用法,錯誤處理。接下來深入學習一下,上傳json字符串,和如何去上傳和請求流式文件并轉化。

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

為了方便演示學習,我又找了一個graphql的接口
https://hasura.io/learn/graphql/graphiql

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

首先大體學習一哈:
這里有個特別好的地方就是有Authorization的認證,這時候就得按照人家的要求來寫了。那就可以通過請求攔截器來加上這個認證即可。所以這里的兩個錯誤處理就特別的好了。

在這里插入圖片描述

所以就是和配置axios一樣,先來配置好這個二次封裝的(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;

在代碼中使用這個接口。

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

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

在這里插入圖片描述

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

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

相關文章

  • 解決ant Design Search無法輸入內容的問題

    解決ant Design Search無法輸入內容的問題

    這篇文章主要介紹了解決ant Design Search無法輸入內容的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 對vue生命周期的深入理解

    對vue生命周期的深入理解

    這篇文章主要給大家介紹了關于對vue生命周期的深入理解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Vue中的reactive函數(shù)操作代碼

    Vue中的reactive函數(shù)操作代碼

    這篇文章主要介紹了Vue中的reactive函數(shù),本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • vue實現(xiàn)將自己網站(h5鏈接)分享到微信中形成小卡片的超詳細教程

    vue實現(xiàn)將自己網站(h5鏈接)分享到微信中形成小卡片的超詳細教程

    在微信小程序中,可以很簡單的分享一個頁面,比微信H5簡單多了,下面這篇文章主要給大家介紹了關于vue實現(xiàn)將自己網站(h5鏈接)分享到微信中形成小卡片的超詳細教程,需要的朋友可以參考下
    2023-02-02
  • vue 動態(tài)表單開發(fā)方法案例詳解

    vue 動態(tài)表單開發(fā)方法案例詳解

    這篇文章主要介紹了vue 動態(tài)表單開發(fā)方法,結合具體案例形式詳細分析了vue.js動態(tài)表單相關原理、開發(fā)步驟與實現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12
  • 淺談Vue-cli 命令行工具分析

    淺談Vue-cli 命令行工具分析

    本篇文章主要介紹了淺談Vue-cli 命令行工具分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue3?在<script?setup>里設置組件name屬性的方法

    Vue3?在<script?setup>里設置組件name屬性的方法

    這篇文章主要介紹了Vue3?在<script?setup>里設置組件name屬性的方法,本文通過示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-11-11
  • Vue中使用Element UI的Table組件實現(xiàn)嵌套表格功能

    Vue中使用Element UI的Table組件實現(xiàn)嵌套表格功能

    這篇文章主要介紹了Vue中使用Element UI的Table組件實現(xiàn)嵌套表格功能,演示如何在Vue中使用Element UI的Table組件實現(xiàn)嵌套表格,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • vue+eslint+vscode配置教程

    vue+eslint+vscode配置教程

    這篇文章主要介紹了vue+eslint+vscode配置教程,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • vue3中element-plus?Upload上傳文件代碼示例

    vue3中element-plus?Upload上傳文件代碼示例

    這篇文章主要介紹了vue3中element-plus?Upload上傳文件的相關資料,在時間開發(fā)中上傳文件是經常遇到的一個需求,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08

最新評論

赤峰市| 谷城县| 无为县| 上蔡县| 东乌| 呼玛县| 小金县| 康乐县| 资阳市| 岚皋县| 湄潭县| 闽侯县| 泰州市| 吴旗县| 婺源县| 阿拉善右旗| 玉树县| 卫辉市| 兴城市| 大渡口区| 建水县| 进贤县| 吴桥县| 巫山县| 淮安市| 武宣县| 东光县| 卢氏县| 子长县| 山西省| 南汇区| 上思县| 甘德县| 景东| 光山县| 华池县| 伊金霍洛旗| 达尔| 扬中市| 诸暨市| 如皋市|