echarts 折線圖 設置y軸最小刻度_【硬貨】vue全家桶+Echarts+百度地圖,搭建數據可視化系統...

8c3a4d7b1cd91c89e04e7af44d7a1637.png

作者丨夙言

來源丨前端大牛愛好者(Web-2017)

https://segmentfault.com/a/1190000018993981

本文章篇幅略長,內容有點多,大佬可根據目錄選擇性查閱,新人可一步步來閱讀。

1、 前言

1.1 業務場景

突然接到產品說要做一個數據監控的系統。有線圖、柱狀圖、地圖,類似于數據可視化的方式。本人之前從未接觸過Echarts,然后需要2周拿出成果,有點慌😂😂

1.2 業務分析

拿到需求看了一下。支持用戶名、密碼登錄,默認顯示一個維度數據,然后點擊可鉆取進入第二維度數據,再點擊進入第三維度數據展示。大致估摸著。。。
  1. 系統搭建vue-cli
  2. vuex記錄登錄信息
  3. vue-router路由跳轉
  4. 3個維度的頁面,提取出共用的組件
  5. 各個組件開發
  6. 調節樣式,增加UI
  7. 加入后臺接口數據
  8. 優化顯示
  9. 測試
  10. 上線
當然這不是要2周內,全做完。應該是完成步驟6。相對于公司就我一個前端,沒接觸過Echarts,有問題都沒人討論的情況下。。。心里還是忍不住想吐槽一下😒😒😒

1.3 效果展示

這里列出了第一維度頁面的樣式。文字請無視,哈哈。5164dcd0029c3b0e538102706b05ce84.png

2 、系統安裝

吐槽歸吐槽,活還是要干的。😎因為本人最熟悉的還是vue,所以還是選擇了用vue全家桶來做。這部分可參考?vue build

2.1 安裝node環境

  • 下載安裝node環境,直接去官網下載即可?node.js
安裝完后可在命令行運行node -vnpm -v查看是否安裝成功以及版本

2.2 安裝Vue項目

2.2.1 安裝vue

官方文檔:vuejs這里我們使用npm的方式
  • npm i vue

2.2.2 安裝Vue CLI

官方文檔:vue CLI
  • npm i -g @vue/cli
安裝之后,你就可以在命令行中訪問 vue 命令。你可以用這個命令來查看其版本。vue -V

2.2.3 創建項目

這里安裝的時候,注意將我們要使用的安裝上。vuexvue-router,其他可根據需要添加。
  1. 方法一
  • vue create hello-world
這里參照官方網站,有很詳細的介紹。參照:vue create
  1. 方法二
使用圖形化界面
  • vue ui
界面含中文,很好操作。參照:vue ui

2.2.4 安裝插件

  1. 方法一
最直接也是推薦的?npm i xxx這里介紹一下?-S -D -g的區別
  • npm i -S xxx 文件寫入dependencies,用于工程中開發時使用到的插件,會發布到生產環境如UI,JS等。
  • npm i -D xxx 文件寫入devDependencies,用于工程支持類插件,不會發布到生產環境,如gulp等壓縮打包工具。
  • npm i -g xxx 全局安裝,如vue、ncu等。安裝目錄為:C:Users用戶AppDataRoamingnpm
  1. 方法二
vue ui圖像化界面中包含了若干插件,可點擊安裝,但不一定是最新版本。同時會在hello中引入。其他和方法一沒區別。

2.3 安裝Echarts

這里我們為了方便,使用了npm全量引用,后期為了精簡項目可單個引用。
  • npm i echarts -S
然后在main.js中添加db8b859434e6ec0abe5eaa936cfb9913.png這里建議提前自定義echarts的樣式,并引入到項目中。官方自定義地址:theme-builder在頁面中我們可以如下引用:var myChart = this.$echarts.init(document.getElementById("myid"),'temp')myid是我們要展示的echartsidtemp是我們的自定義的樣式,同時官方提供了幾個樣式例子,可以node_modules\echarts\theme中找到。

2.4 安裝element-ui

這里我們為了方便,使用了npm全量引用,后期為了精簡項目可單個引用。
  • npm i element-ui -S
然后在main.js中添加3365c4499db18b88a4e5bb9987fda362.png

2.5 安裝百度地圖

一般vue使用百度地圖有2種方式,
  • 一種是像官網那樣去應用。如:BMap
  • 第二種是使用?vue-baidu-map
不管是哪一種都要去申請賬號和密鑰。申請地址為:百度地圖密鑰(ak)這里我使用了第二種。vue-baidu-map文檔
  • npm i vue-baidu-map -S
然后在main.js中添加。d6cf090e5bf03be7e0a494b32a712486.pngxxxxxxxx這里填寫自己申請的密鑰。在頁面中,參照文檔,可使用標簽來調用。

2.6 初始化樣式

css樣式初始化,簡單來說就是為了各個瀏覽器能統一什么的。這里我使用的是?normalize.css下載下來后,在main.js中添加396b7d3c64ae0e333322ea932b60a2ca.png基本上的準備工作都做好了,接下來就是具體的代碼了。

3 、項目搭建

3.1 router、vuex

我這里新建了一個router.jsstore.js,大致如下:f559852e4d7b771c7d2098c4dbe816a5.png哦哈,這里路由定義是為了方便看哈,具體還是根據業務來定義。這里的router.beforeEach路由衛士用于是否登錄校驗。然后我們在main.js中來引用。e7a00d9a7aa64c7bfb143e46f492b2ab.png更多請參考官方文檔:Vue Router Vuex

3.2 Login頁面

登錄頁面沒啥,就是個form提交,由于路由中判斷user.id。所以我們儲存一下,然后跳轉到Index頁面就行。這里只是一種方式,也可以使用CookieSession

3.3 Index頁面

分析頁面分成了2個大部分
  • 第一部分是?頭部
  • 第二部門是?主體
a335ad59d99ab55c2fbc7f51de5c55e9.png我們將頭部當做一個組件進行復用。組件的復用可參考官方文檔:https://cn.vuejs.org/v2/guide...

3.4 header頁面

頭部比較簡單,除了一些顯示外,還有一個顯示當前時間。這里我們使用了setInterval,每隔1秒去獲取一下當前時間賦值給你定義的v-model就行。同時在離開頁面時,我們清理掉定時器。這里需要我們對Vue的生命周期有一定的了解。獲取當前時間的方法可參考:data-module.js

3.5 主體頁面

這里分析一下頁面,主要分成了3塊。
  1. 左邊,包含了2個折線圖。
  2. 中間,包含了數字和地圖。
  3. 右邊,包含了柱狀圖和表格。
接下來主要介紹一下,自己這2周摸索出來的一些Echarts配置,適合新手,大佬輕噴。這里需要經常翻閱?Echarts配置項?和?API?了

3.5.1 Echarts基本

這里列出基本的渲染寫法,具體的圖形和數據只要修改option就可以了。
    
export default { mounted(){ this.drawECharts() }, methods:{ drawECharts(){ // temp 是我們的自定義樣式,上面安裝Echarts時有介紹 var myChart = this.$echarts.init(document.getElementById("myecharts"),'temp') var option = {} option = { // 吧啦吧啦 一堆配置 } // 執行渲染圖形和數據的操作 if (option && typeof option === "object") { myChart.setOption(option, true) } } } } // 一定要設置大小,不然不出來,這玩意和canvas一樣 .myecharts{ width : 500px; height : 300px; }
3.5.2 線形圖
多多實踐,就會發現每個配置和其參數的作用了。
option = {    // 提示框(就是鼠標放上去后出現的框)    tooltip : {        trigger: 'axis',        axisPointer: {            type: 'cross',            label: {                backgroundColor: '#6a7985'            }        }    },    //  右上角的組件,用于說明,也可進行點擊篩選    legend: {        align : 'right',        x : 'right',        top : 25,        selectedMode : 'single',    //  我這里設置的單選模式        data:['好','壞']            //  顯示的第一項和第二項,這里的顏色是根據自定義主題的顏色順序來定的    },    //  x、y軸顯示一些設置,比如刻度顏色顯示什么的,可在自定義主題設置一部分    xAxis: {        type: 'category',        boundaryGap: false,        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']    },    yAxis: {        type: 'value'    },    // 具體配置項,根據具體項目查看官網配置項說明    series: [        {            name : '好',            data: [150, 132, 201, 534, 290, 530, 820],            type: 'line',            smooth: true,   //  是否平滑曲線            areaStyle: {},        },        {             name : '壞',            data: [82, 93, 90, 93, 129, 333, 432],            type: 'line',            smooth: true,            areaStyle: {},        }    ]}// 查看Echarts的API,我們需要顯示默認的一些數據,配置如下// 默認顯示壞的數據myChart.dispatchAction({    type: 'legendSelect',    name: '壞',})//  默認顯示第7個數據myChart.dispatchAction({    type: 'showTip',    seriesIndex: 1,    dataIndex: 6,})
預覽:3800629b18953acea180fe7f4910ef50.png

3.5.3 柱狀圖

這里我們直接用雙柱狀圖來演示。因為名字和數字需要提示和點擊的功能,所以沒有使用echartsy軸。不然formatter又要寫一堆,雖然用了自定義的,但最開始是用的formatter。可以實現相同展示,但無法操作,如鼠標提示和鼠標點擊。
名稱:{{it.name}}
個數:{{it.num}}
{{ it.name.substring(0,4)+'...' }}
{{ it.num }}
名稱:{{it.name}}
個數:{{it.num}}
{{ it.name.substring(0,4)+'...' }}
{{ it.num }}
css這里就不貼了,效果就是這2行文字剛好貼在2行柱狀圖前面。接下來是echarts配置。
option = { // 鼠標提示框 tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, // 右邊顯示 legend: { selectedMode:false, data: ['好', '壞'], top:5, right:8, }, // 兩個圖坐標的位置 grid: [ {left: '16%', top:'10%', width: '22%', height: '86%'}, {left: '65%', top:'10%', width: '22%', height: '86%'} ], // 兩個圖x軸的設置,這里的gridIndex就是個序號,用于區分 xAxis: [ {gridIndex : 0, show : false}, {gridIndex : 1, show : false}, ], // 兩個圖y軸的設置,注釋的部分是用echarts本身的y軸來顯示名稱和數量的 yAxis: [ { gridIndex: 0, type: 'category', show : false, data : ['廣東/12','杭州/13','北京北京/14','天津/16'], // axisLabel: { // formatter : function(value){ // let arr = value.split('/') // return '{a|'+arr[0]+'}\n{b|'+ arr[1]+'}'; // }, // rich: { // a: { // color : '#ffffff', // lineHeight : 19, // fontSize : 14, // align: 'right', // }, // b:{ // fontSize : 18, // lineHeight : 19, // fontWeight : 'bold', // align: 'right', // fontFamily : 'Digital', // } // } // } }, { gridIndex: 1, show : false, type: 'category', data : ['海南/12','三亞/13','哈爾濱/14','西雙版納/16'], // axisLabel: { // formatter : function(value){ // let arr = value.split('/') // return '{a|'+arr[0]+'}\n{b|'+ arr[1]+'}'; // }, // rich: { // a: { // color : '#ffffff', // lineHeight : 19, // fontSize : 14, // align: 'right', // }, // b:{ // fontSize : 18, // lineHeight : 19, // fontWeight : 'bold', // align: 'right', // fontFamily : 'Digital', // } // } // } }, ], // 渲染圖形和數據,bar是柱狀圖 // barWidth 柱狀的寬度 // 兩類兩套,所以有4組數據,使用xAxisIndex、yAxisIndex來區分。 series: [ { name: '好', type: 'bar', barWidth : 5, barMinHeight : 5, barGap : '100%', xAxisIndex: 0, yAxisIndex: 0, data: [0, 3489, 9022234, 922228], label: { normal: { position: 'right', show: true } }, }, { name: '壞', type: 'bar', barWidth : 5, barMinHeight : 5, xAxisIndex: 0, yAxisIndex: 0, data: [0, 2438, 3300, 1594], label: { normal: { position: 'right', show: true } }, }, { name: '好', type: 'bar', barWidth : 5, barMinHeight : 10, barGap : '100%', xAxisIndex: 1, yAxisIndex: 1, data: [8203, 3489, 9034, 222], label: { normal: { position: 'right', show: true } }, }, { name: '壞', type: 'bar', barWidth : 5, barMinHeight : 5, xAxisIndex: 1, yAxisIndex: 1, data: [445, 2438, 3300, 555], label: { normal: { position: 'right', show: true } }, }, ]}
預覽:898ec29ee10cb9fb0bec393020056120.png

3.5.4 表格

table我這里使用了element-ui加上修改 UI 默認css?和 滾動條的?css。這里列出一項,其他寫法相似。
 :data="tableData"  style="min-width: 100%;">  prop="date" min- header-align="center" label="時間">    
{{scope.row.date}}
{{ scope.row.date }}
UI 樣式UI?css的修改,這里我使用了自定義字體哦,完全copy是不起作用的。其他的設置項不做說明,F12打開,隨便玩。
.el-table thead { color: #FFFFFF;}.el-table { color: #00A5F6; font-family: 'Regular'; background-color: rgba(0, 0, 0, 0.03); th { padding: 2px 0; background-color: #003260;  } th.is-leaf { border-bottom: 0px solid #EBEEF5; } tr { background-color: rgba(0, 0, 0, 0.03); } td { border-bottom: 1px solid #2c3547; padding: 2px 0; } .el-table::before { height: 0px; z-index: 0; background-color: #2c3547; }}
滾動條的樣式隨意改變看看效果就懂了,谷歌瀏覽器 😅
/* scrollbar */::-webkit-scrollbar { width: 8px; height: 1px; background-color:transparent;}::-webkit-scrollbar-thumb { border-radius: 10px; background: #adabab;}::-webkit-scrollbar-track { border-radius: 10px; background:#394d63;}
預覽:2813579961a1441344df6098bcf5615a.png

3.5.5 百度地圖

vue-baidu-map?文檔
 :center="map.center" // 地圖中心經緯 {lng: 114.023598, lat: 33.589299} :scroll-wheel-zoom="true" // 地圖是否滾輪縮放 :zoom="map.zoom" // 默認地圖尺寸 :mapStyle="mapStyle" // 地圖樣式 > // 地圖寬高 // 標點  :key="it.id" :position="it.position" // 標點位置 @click="markclick(it,index)" // 標點點擊事件 @mouseover="markover(it,index)" // 鼠標移動到標點上的事件 :icon="it.if? iocn:newincon" // 標點的樣式 @mouseout="markout(it,index)"> // 鼠標從標點移走的事件  :show="it.show" // 標點提示框的顯示true/false :position="it.position"> // 提示框坐標    
預覽:a6d81a1b1a9f96ed9926600c43d0c958.png

3.5.6 矢量地圖

Echarts矢量地圖的類型有type:'scatter'?散點氣泡圖,可在地圖中顯示不用顏色程度的點type:'effectScatter'?有漣漪特效動畫的散點圖type:'map'?地理區域的數據可視化type:'lines'?地圖航線、路線的可視化引入地圖
require('echarts/map/js/china.js')require('echarts/map/js/province/beijing.js')
這里我有問題,我要引入全國的省份,就要多寫30多個require,有沒有大佬能給出更好的辦法?找到一個全量引用的方法
const rjs = require.context('echarts/map/js/province')rjs.keys().forEach(rjs)
可以替代
require('echarts/map/js/province/beijing.js')require('echarts/map/js/province/shanxi.js')require('echarts/map/js/province/neimenggu.js')等等等。。。
地圖配置:
option = { // 鼠標提示 tooltip : { trigger: 'item', formatter : function(params){ var val = params.data return '名稱:'+val.name+',個數:'+val.value[2]+'
'+'總數:'+val.tol+',個數:'+val.un
}, }, // 不同顏色的點 visualMap: [ { min: 0, max: 1, show : false, inRange: { color: ['#01cae2', '#e63136',] }, dimension : 3, }, ], // 地圖樣式 geo: { map: 'china', // 地圖樣式,當為‘北京’時,會顯示北京地圖 roam : true, label: { emphasis: { show: true } }, zoom : 1.2, // 初始大小 scaleLimit : { min : 1.2, // 最小縮放 max : 6 // 最大縮放 }, regions : regions(data) // 省份樣式方法 }, series : [ { name: '分布', type: 'scatter', coordinateSystem: 'geo', // 地圖配置 data: convertData(data.sort(function (a, b) { // 數據方法 return b.value - a.value; })), encode: { value : 2 }, hoverAnimation: true, itemStyle: { normal: { // color: '#FF3030', shadowBlur: 1, } }, } ]};
當點擊省份地圖時,我們可以進入省份地圖的矢量圖
myChart.on('click',function(params){ option.geo.map = '北京' myChart.setOption(option, true);})
預覽:f8b25337cbc2866b6aed6aa03381a58e.pngde979786a4d16e4658c5be245a5f864f.png

4 、后記

目前還沒有接入后端數據,就是全前臺的一個展示。很多都是全量引入,后續待成熟后,可慢慢精簡。總結一下:Vue入門?+ Echarts入門?,希望能對你有用!!!😜😜😜感謝支持。若不足之處,歡迎大家指出,共勉。如果覺得不錯,記得 點贊,謝謝大家?😂

3d5005f837844ec660f4bc3dee040703.png

近期精彩內容推薦:??

7bf99d3780dd277a909e9c254779c916.png?太真實了!有個程序員男友原來是這樣的!

7bf99d3780dd277a909e9c254779c916.png?終于有人把 HTTPS 原理講清楚了!

7bf99d3780dd277a909e9c254779c916.png?你真的會用 Postman 嗎?

7bf99d3780dd277a909e9c254779c916.png?Swift 5.3 路線圖

596f2aa91459d21232f5a98169de380c.png

51a982f0210a67c27e681ff70359d087.png

在看點這里089af33596cd2ccf9f8bd4154193b975.gif好文分享給更多人↓↓

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446310.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

密碼學專題 文本數據庫

應用概述 文本數據庫是跟OpenSSL的CA應用程序緊密結合在一起的,它以文本的方式記錄CA已經簽發的證書的狀態和摘要信息。這些狀態信息可以用于跟證書庫相關的一些操作,比如使用ca指令生成CRL主要就是讀取這個文本數據庫的信息作為參考。文本數據庫就是普…

Python學習13 異常處理機制

概括 常見的異常 異常處理機制 可以多個異常放在元組里面 一旦產生異常,try后面的語句不會繼續執行,會做異常處理 異常使用場景1 close應該放在finally中 異常使用場景2 finally關鍵字 會執行except后面的,報錯

java 布隆過濾器_牛逼哄哄的布隆過濾器,到底有什么用?

Java技術棧www.javastack.cn打開網站看更多優質文章作者:CodeBear的園子www.cnblogs.com/CodeBear/p/10911177.html本文是站在小白的角度去討論布隆過濾器,如果你是科班出身,或者比較聰明,又或者真正想完全搞懂布隆過濾器的可以移…

密碼學專題 序列號文件

序列號文件是ca指令簽發證書的時候的依據文件之一,它從該文件讀取當前簽發的證書的序列號并將序列號文件中的序列號加1,這樣,就可以確保證書的序論號是遞增的,不會重復。序列號文件也是一個文本文件,里面僅僅簡單包含了…

Java web后端6 java Bean EL表達式

EL表達式和JSTL概述 java Bean規范 java中成員變量使用類Integer private Integer count; java Bean的創建 創建java Bean: BookTest.java package com.example.elandjstl.bean;public class BookTest {//java中成員變量使用類Integerprivate Integer count;private Boolean…

python根須系統斜杠_深入淺出Python中的os模塊

「Author:Runsen」當初學Python的時候,把一些標準庫和第三方開源庫學的七零八落,不成系統,正好趁這個機會來系統的整理一下,先從Python常用的標準庫os開始吧。osOS模塊簡單的來說它是一個Python的系統編程的操作模塊&a…

密碼學專題 隨機數文件

無論使用OpenSSL的指令還是其API,隨機數文件都是會經常碰到的一個概念。大部分密碼算法的安全性都跟隨機數的好壞相關,所以一個成功的密碼學應用軟件,對隨機數的處理是不能隨便的。OpenSSL雖然沒有提供很完美的隨機數生成程序,但是…

Java web后端7JSTL

概括 下載jstl的jar包 官網&#xff1a;https://mvnrepository.com/ 網址1&#xff1a;https://search.maven.org/ 在pomxml中插入依賴&#xff1a; <dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1…

python輸入程序_python程序的輸入輸出(acm的幾個小程序)

#!/usr/bin/env python#codingutf-8 a[]for x inraw_input().split(): a.append(int(x))print sum(a) 下面的代碼只有一行&#xff0c;&#xff0c;可惜不是我想出來的&#xff01;&#xff01;&#xff01;&#xff01;&#xff1a; print sum(int(x) for x in raw_input().sp…

密碼學專題 口令輸入的方式

雖然口令的安全性很值得擔憂&#xff0c;但是口令在OpenSSL中是經常使用的&#xff0c;這是沒有辦法替代的一種簡易的保護數據的方法。OpenSSL中使用口令的地方很多&#xff0c;比如密鑰的加密和解密&#xff0c;等等。OpenSSL的指令提供了多種靈活的口令輸入方法&#xff0c;但…

Python學習14 模塊和包

模塊 公共類、函數都可以放在獨立的文件中&#xff0c;這樣其他多個程序都可以使用&#xff0c;而不必把這些公共性的類、函數等在每個程序中復制一份&#xff0c;這樣獨立的文件就叫做模塊&#xff0c;它們的擴展名為.py 標準庫中的模塊 使用help查看模塊 代碼&#xff1a; …

python語句分為_python以什么劃分語句塊

語句塊是在條件為真&#xff08;條件語句&#xff09;時執行或者執行多次&#xff08;循環語句&#xff09;的一組語句&#xff1b;在代碼前放置空格來縮進語句即可創建語句塊&#xff0c;語句塊中的每行必須是同樣的縮進量&#xff1b;&#xff08;推薦學習&#xff1a;Python…

Python學習15 正則表達式1

網址 正則表達式測試網址&#xff1a;https://regex101.com/ 概述 正則表達式&#xff1a; 正則表達式(Regular Expression)是一種文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之間的字母&#xff09;和特殊字符&#xff08;稱為"元字符"…

STL源碼剖析 空間配置器 查漏補缺

ptrdiff_t含義 減去兩個指針的結果的帶符號整數類型ptrdiff_t (Type support) - C 中文開發手冊 - 開發者手冊 - 云社區 - 騰訊云 std::set_new_handler&#xff08;&#xff09;函數的理解 關于set_new_handler的理解_wck0617-CSDN博客new分配內存的時候 如果分配的空間不…

python每天定時9點執行_python定時器每天訂時執行的實例方法

python定時器,實現每天凌晨3點執行的方法 如下所示&#xff1a;Created on 2018-4-20 例子:每天凌晨3點執行func方法import datetime import threading def func(): print("haha") #如果需要循環調用&#xff0c;就要添加以下方法 timer threading.Timer(86400, fun…

Python學習16 正則表達式2 re模塊

re 模塊 re 模塊&#xff1a; Python的 re 模塊實現了正則表達式處理的功能。 導入re模塊后&#xff0c;使用findall、search函數可以進行匹配 查找&#xff1a;match和search 多個匹配上的&#xff0c;也只會返回第一個匹配上的 re.match()&#xff1a; 需要特別注意的是&…

STL源碼剖析 內存基本處理工具 初始化空間的五個函數

初始化空間的五個函數構造函數 construct()析構函數 destroy()剩余三個底層函數 和 高層函數之間的對應關系如下uninitialized_copy() 對應 copy()uninitialized_fill() 對應 fill()uninitialized_fill_n() 對應 fill_n()使用<memory>使用上述三個底層函數 uninitiali…

單基因gsea_篩到5分的核心基因以后你可以怎么做?

這一次我們從一些已經發表的文章拆解&#xff0c;我們來看看&#xff0c;你找到了一個核心基因以后&#xff0c;你可以怎么做呢&#xff1f;我們就不說那么多廢話了&#xff0c;直接用幾篇文章的解讀來帶著大家領會一下如何去進行下一步的分析。Case1&#xff1a;預后標志物免疫…

安卓 原生okhttp使用get與post獲取網絡數據

網址 https://square.github.io/okhttp/ 配置 依賴 在module的build.gradle中&#xff1a; implementation com.squareup.okhttp3:okhttp:3.14.7implementation com.squareup.okio:okio:1.17.5AndroidManifest.xml <uses-permission android:name"android.permissi…

STL源碼剖析 迭代器的概念和traits編程技法

迭代器&#xff1a;依序巡防某個聚合物(容器)所含的各個元素&#xff0c;但是不需要暴露這個聚合物的內部表述方式核心思想&#xff1a;將容器和算法分開&#xff0c;彼此獨立設計容器和算法的泛型化&#xff0c;均可以使用模板&#xff0c;使用迭代器連接容器和算法例子 templ…