电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue3.x中apollo的使用案例代碼

瀏覽:154日期:2022-06-02 09:59:08
目錄
  • 通過客戶端獲取Apollo配置
    • 環境
    • 工具的安裝
    • 獲取Apollo配置
      • 相關代碼
      • 錯誤提示
  • 通過開放接口獲取Apollo配置
    • 通過不帶緩存的Http接口從Apollo讀取配置
      • 參數說明
      • 瀏覽器方式
      • 請求交互方式

目前為止,前端獲取動態數據,都是前端與服務端進行交互獲取數據,但是如果只是獲取簡單的一些配置屬性,并沒有其它的接口需要服務端提供,此時在搭建一個服務器就是資源的浪費了,希望可以直接從 apollo的配置服務器中獲取,無需額外的服務端接口

通過前端自身直接獲取到apollo的配置目前看到官方支持的客戶端是沒有vue的,所以以下是前端獲取到apollo數據的過程

通過客戶端獲取Apollo配置

環境

"vue": "^3.2.41",
"@vue/cli-service": "~5.0.8",

工具的安裝

"@vue/apollo-composable": "^4.0.0-beta.2",
"@vue/apollo-option": "^4.0.0-beta.2",
"graphql": "^16.6.0",
"graphql-tag": "^2.12.6",

獲取Apollo配置

相關代碼

main.ts 配置建立鏈接

const httpLink = createHttpLink({
    // You should use an absolute URL here
    uri: apiApollo,
    // credentials: "include"
})
// Cache implementation
const cache = new InMemoryCache()

// Create the apollo client
const apolloClient = new ApolloClient({
    link: httpLink,
    cache,
})
const apolloProvider = createApolloProvider({
    defaultClient: apolloClient,
})

const app = createApp(App, {
setup() {
    provide(DefaultApolloClient, apolloClient)
}
    });

獲取數據

import { useQuery } from "@vue/apollo-composable";
import gql from "graphql-tag";
export default defineComponent({
  name:"page-info",
  setup(){

    const { result, error, onResult, onError } = useQuery(gql`
    query getPartners {
      partners {
label,
value
      }
    }
    `)

    onResult(queryResult => {
      console.log("queryResultqueryResult", queryResult.data)
      console.log(queryResult.loading)
      console.log(queryResult.networkStatus)

    })

    onError(error => {
      console.log("queryResultqueryResult error", error.graphQLErrors)
      console.log(error.networkError)
    })
  }
})

錯誤提示

Use the @apollo/client/core import path otherwise you will also import React.

一定注意引入的位置是import { ApolloClient, createHttpLink, InMemoryCache } from "@apollo/client/core";而不是@apollo/client,否則就會報引入react錯誤

Uncaught (in promise) Error: Apollo client with id default not found. Use provideApolloClient() if you are outside of a component setup

該方式嘗試多種方式都是提示該錯誤,并且vue3.x 該方式暫時還沒有比較完整的文檔說明,所以該方式等以后更成熟之后在考慮

通過開放接口獲取Apollo配置

根據目前的環境使用客戶端的方式獲取Apollo配置失敗,發現目前官方推薦的還有一種方式便是通過接口獲取

通過不帶緩存的Http接口從Apollo讀取配置

接口URL格式: {config_server_url}/configs/{appId}/{clusterName}/{namespaceName}?releaseKey={releaseKey}&ip={clientIp}

Method方式: GET

參數說明

參數名是否必須參數值備注config_server_url是Apollo配置服務的地址,非UI界面的地址appId是應用的appIdclusterName是集群名 一般情況下傳入 default 即可。如果希望配置按集群劃分,可以參考集群獨立配置說明做相關配置,然后在這里填入對應的集群名。namespaceName是Namespace的名字,如果沒有新建過Namespace的話,傳入application即可。如果創建了Namespace,并且需要使用該Namespace的配置,則傳入對應的Namespace名字。需要注意的是對于properties類型的namespace,只需要傳入namespace的名字即可,如application。對于其它類型的namespace,需要傳入namespace的名字加上后綴名,如datasources.jsonreleaseKey否上一次的releaseKey將上一次返回對象中的releaseKey傳入即可,用來給服務端比較版本,如果版本比下來沒有變化,則服務端直接返回304以節省流量和運算ip否應用部署的機器ip這個參數是可選的,用來實現灰度發布。

config_server_url:不是配置的UI界面的DNS,是服務器的DNS,并且兩者沒有關聯,所以如果直接拿界面的DNS獲取是獲取不到數據的

瀏覽器方式

https://apollo-config.uat.XXXX/configs/項目ID/項目空間/application

返回數據:

{
  "appId": "xxxx",
  "cluster": "default",
  "namespaceName": "application",
  "configurations": {//application 所有配置的值
    "title": "Apollo set value"
  },
  "releaseKey": "2023021"
}

請求交互方式

axios({
  method:"get",
  url:"/configs/{appId}/{clusterName}/{namespaceName}"
}).then((res:any)=>{
  console.log(res)
})

交互訪問也會返回相同的數據

到此這篇關于vue3.x中apollo的使用的文章就介紹到這了,更多相關vue apollo使用內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: JavaScript
主站蜘蛛池模板: 快速卷帘门_硬质快速卷帘门-西朗门业 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 汕头市盛大文化传播有限公司,www.11400.cc| 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 猎头招聘_深圳猎头公司_知名猎头公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 盛源真空泵|空压机-浙江盛源空压机制造有限公司-【盛源官网】 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 废旧物资回收公司_广州废旧设备回收_报废设备物资回收-益美工厂设备回收公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 |