uni-app微信小程序使用echarts的詳細(xì)圖文教程
前言:
本來(lái)是使用的ucharts,但因?yàn)闊o(wú)法監(jiān)聽(tīng)圖例點(diǎn)擊交互,滿(mǎn)足不了需求,所以只能放棄。
首先,下載echart組件。
可以先隨便建個(gè)文件夾,然后 npm init。接著下載依賴(lài)
npm install echarts mpvue-echarts
然后找到 node_modules\mpvue-echarts\下的文件,如圖

只留下src,其他的刪掉(沒(méi)有用到)。然后復(fù)制 mpvue-echarts文件夾到你項(xiàng)目的components中。如圖

接著需要echarts.min.js文件。
鏈接: ECharts 在線構(gòu)建定制echarts的js文件,選擇自己項(xiàng)目需要的圖表及組件,可以選擇進(jìn)行代碼壓縮。
把下載下來(lái)的 echarts.min.js放到你的項(xiàng)目中。?。?!還需要修改里面的代碼,
!!!修改 echarts.min.js,否則會(huì)報(bào)錯(cuò) t.addEventListener is not a function。
1.增加代碼
var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;
如下圖

2.修改 Le 和 Pe 函數(shù)(可通過(guò)ctrl+f搜索)如下
// An highlighted block
function Pe(t, e, n, i) {
if (isDomLevel2) {
t.addEventListener(e, n, i)
} else {
t.attachEvent('on' + e, n)
}
}
function Le(t, e, n, i) {
if (isDomLevel2) {
t.removeEventListener(e, n, i)
} else {
t.detachEvent('on' + e, n)
}
}
3.全文搜索 preventDefault() 修改當(dāng)前的方法函數(shù)增加判斷(我一開(kāi)始沒(méi)改這個(gè),圖表正常沒(méi)啥問(wèn)題,但是我用dataZoom滑動(dòng)時(shí)會(huì)報(bào)錯(cuò)“t.preventDefault is not a function”,然后改為如下代碼后就能正?;瑒?dòng)了)
如下
// An highlighted block
if (isDomLevel2) {
t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0
} else {
t.returnValue = false;
t.cancelBubble = !0
}
壓縮的代碼格式化后體積增加了1倍,所以我最后沒(méi)有格式化,直接在壓縮的代碼里找到對(duì)應(yīng)位置修改的。
需要準(zhǔn)備的東西都已經(jīng)好了,接下來(lái)正片開(kāi)始??!
在頁(yè)面中使用:
<template>
<view class="echarts-wrap">
<my-echarts
id="main"
ref="mapChart"
:echarts="echarts"
:onInit="initChart"
/>
</view>
</template>
<script>
import * as echarts from "@/pages/data/static/js/echarts.min.js"; //這里根據(jù)自己存放的路徑修改
import myEcharts from "@/pages/data/components/mpvue-echarts/src/echarts.vue"; //這里根據(jù)自己存放的路徑修改
let chart = null; //放外層方便拿到echart實(shí)例
export default {
components: {
myEcharts,
},
data() {
return {
echarts,
};
},
onReady() {},
mounted() {
setTimeout(() => {
chart.on("click", (params) => { //監(jiān)聽(tīng)圖例點(diǎn)擊事件(詳細(xì)參見(jiàn)echart文檔)
this.$emit("chartClick", params);
});
}, 500);
this.updateData() //模擬動(dòng)態(tài)更新數(shù)據(jù)
},
methods: {
initChart(canvas, width, height) {
chart = echarts.init(canvas, null, {
width: width,
height: height,
});
canvas.setChart(chart);
var option = {
xAxis: {
type: "category",
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
},
yAxis: {
type: "value",
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: "bar",
},
]
}; // ECharts 配置項(xiàng)(詳細(xì)的圖表配置參見(jiàn) echart配置項(xiàng))
chart.setOption(option);
return chart; // 返回 chart 后可以自動(dòng)綁定觸摸操作
},
updateData(){
setTimeout(()=>{
chart.setOption({
series:[{
data:[30, 90, 111, 20, 70, 88, 11]
}]
})
},1000)
},
},
};
</script>
<style>
.echarts-wrap {
width: 100%;
height: 300px;
}
</style>
詳細(xì)的圖表配置參見(jiàn) echart配置項(xiàng) 最后效果:

總結(jié)
到此這篇關(guān)于uni-app微信小程序使用echarts的文章就介紹到這了,更多相關(guān)uni-app微信小程序使用echarts內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript中tostring()和valueof()的用法及兩者的區(qū)別
基本上,所有JS數(shù)據(jù)類(lèi)型都擁有valueOf和toString這兩個(gè)方法,null除外。它們倆解決javascript值運(yùn)算與顯示的問(wèn)題,本文給大家介紹javascript中tostring()和valueof()的用法及兩者的區(qū)別,對(duì)js tostring valueof相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-11-11
JavaScript編程中容易出BUG的幾點(diǎn)小知識(shí)
這篇文章主要介紹了JavaScript編程中容易出BUG的幾點(diǎn)小知識(shí),本文總結(jié)了8條小知識(shí),這些小知識(shí)如果弄不明白,會(huì)在編程中給你惹麻煩出BUG,需要的朋友可以參考下2015-01-01
JavaScript Array Flatten 與遞歸使用介紹
用 JavaScript 將 [1,2,3,[4,5, [6,7]], [[[8]]]] 這樣一個(gè) Array 變成 [1,2,3,4,5, 6,7,8] 呢?傳說(shuō)中的 Array Flatten2011-10-10
[js高手之路]從原型鏈開(kāi)始圖解繼承到組合繼承的產(chǎn)生詳解
下面小編就為大家?guī)?lái)一篇[js高手之路]從原型鏈開(kāi)始圖解繼承到組合繼承的產(chǎn)生詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
HTML元素拖拽功能實(shí)現(xiàn)的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于HTML元素拖拽功能實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

