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

vue3使用echart的兩種引入方式以及注意事項(xiàng)說(shuō)明

 更新時(shí)間:2022年10月19日 15:18:04   作者:No?Bug  
這篇文章主要介紹了vue3使用echart的兩種引入方式以及注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

創(chuàng)建好vue3項(xiàng)目后安裝echarts

終端輸入:

npm i echarts --save

安裝好后:

1.直接在組件中引用echarts

<script setup>
? ? ? ? import * as echarts from 'echarts' ?
</script>

2.全局引入,一般在app.vue

app.vue  (provide 和 inject的使用)

<script setup>
? ? ? ? import * as echarts from 'echarts' ?
? ? ? ? provide('echarts',echarts)
</script>

在需要用echarts的組件中用inject獲取

<script setup>
? ? ? ? const echarts ?= inject('echarts')
</script>

注意!??!vue掛載 、echarts渲染 、數(shù)據(jù)獲取三者的時(shí)間順序

1.先講vue掛載和echarts渲染

拿掛網(wǎng)的入門例子來(lái)說(shuō)。(vue3 版本)

<script setup>
import * as echarts from 'echarts';
const myCharts = ref(null)
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(mycharts.value);
// 繪制圖表
myChart.setOption({
? title: {
? ? text: 'ECharts 入門示例'
? },
? tooltip: {},
? xAxis: {
? ? data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']
? },
? yAxis: {},
? series: [
? ? {
? ? ? name: '銷量',
? ? ? type: 'bar',
? ? ? data: [5, 20, 36, 10, 10, 20]
? ? }
? ]
});
<script>

開始我是這么寫的,開起來(lái)好像沒有問(wèn)題。但是你一打開頁(yè)面就會(huì)發(fā)現(xiàn)數(shù)據(jù)沒有渲染上去。因?yàn)榇藭r(shí)vue還沒有掛載到dom元素上去,所以獲取不到dom元素,數(shù)據(jù)當(dāng)然不能渲染。

需要這么寫,把獲取dom元素和初始化myecharts的動(dòng)作放到onMounted(()=>{})中

<script setup>
import * as echarts from 'echarts';
onMounted(()=>{
const myCharts = ref(null)
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(mycharts.value);
// 繪制圖表
myChart.setOption({
? title: {
? ? text: 'ECharts 入門示例'
? },
? tooltip: {},
? xAxis: {
? ? data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']
? },
? yAxis: {},
? series: [
? ? {
? ? ? name: '銷量',
? ? ? type: 'bar',
? ? ? data: [5, 20, 36, 10, 10, 20]
? ? }
? ]
});
})
<script>

vue3:你可以通過(guò)在生命周期鉤子前面加上 “on” 來(lái)訪問(wèn)組件的生命周期鉤子。

我在<script setup>上加了setup,就等于在setup內(nèi)部.

下表包含如何在 setup () 內(nèi)部調(diào)用生命周期鉤子: 

選項(xiàng)式 APIHook inside setup
beforeCreateNot needed*
createdNot needed*
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeUnmountonBeforeUnmount
unmountedonUnmounted
errorCapturedonErrorCaptured
renderTrackedonRenderTracked
renderTriggeredonRenderTriggered
activatedonActivated
deactivatedonDeactivated

TIP:

因?yàn)?setup 是圍繞 beforeCreate 和 created 生命周期鉤子運(yùn)行的,所以不需要顯式地定義它們。換句話說(shuō),在這些鉤子中編寫的任何代碼都應(yīng)該直接在 setup 函數(shù)中編寫。

這些函數(shù)接受一個(gè)回調(diào)函數(shù),當(dāng)鉤子被組件調(diào)用時(shí)將會(huì)被執(zhí)行:

// MyBook.vue
?
export default {
? setup() {
? ? // mounted
? ? onMounted(() => {
? ? ? console.log('Component is mounted!')
? ? })
? }
}

2.echarts渲染和數(shù)據(jù)獲取

通過(guò)axios獲取數(shù)據(jù)然后通過(guò)echarts渲染到頁(yè)面

如果是用的異步請(qǐng)求就要非常注意了!

簡(jiǎn)單介紹一下異步請(qǐng)求:異步請(qǐng)求在執(zhí)行過(guò)程中是不會(huì)影響后面程序執(zhí)行的,好比如在主線程開辟了一個(gè)子線程。

如過(guò)異步獲取數(shù)據(jù),還在獲取中,echart已經(jīng)把dom元素渲染了,但是i請(qǐng)求的數(shù)據(jù)還沒返回回來(lái),此時(shí)渲染的就是空數(shù)據(jù)。

所以用異步請(qǐng)求,可以把echart渲染和初始化放到axios.then()里面,這樣就不會(huì)出現(xiàn)渲染空數(shù)據(jù)了。

如下面: 

<script setup>
import api from '@/api/index'
var keydata = []
var valuedata = []
const resdata = []
const wordsChartsBox = ref(null)
const echarts = inject('echarts')
function getf() {
    api.get('/backstage').then(res => {
        for (const key in res.data) {
            var element = res.data[key]
            if (key == 1) {
                keydata = element
            } else {
                valuedata = element
            }
        }
        for (let index = 0; index < keydata.length; index++) {
            resdata.push(
                {
                    value: parseInt(valuedata[index]),
                    name: keydata[index]
                }
            )
        }
        const wordsChartsOption = {
            title: {
                text: '常用詞統(tǒng)計(jì)',
                subtext: '通過(guò)常用詞統(tǒng)計(jì)分析盲人需求',
                left: 'center'
            },
            tooltip: {
                trigger: 'item',
                formatter: '{a} <br/> : {c} (vvxyksv9kd%)'
            },
            legend: {
                type: 'scroll',
                orient: 'vertical',
                right: 10,
                top: 20,
                bottom: 20,
                data: keydata
            },
            series: [
                {
                    name: '姓名',
                    type: 'pie',
                    radius: '55%',
                    center: ['40%', '50%'],
                    data: resdata,
                    emphasis: {
                        itemStyle: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        }
        const wordsCharts = echarts.init(wordsChartsBox.value)
        wordsCharts.setOption(wordsChartsOption)
    })
    console.log(resdata)
}
onMounted(() => {
    getf()
})
</script>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測(cè)功能

    Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測(cè)功能

    這篇文章主要介紹了Vue+tracking.js 實(shí)現(xiàn)前端人臉檢測(cè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決

    使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決

    這篇文章主要介紹了使用elementUI表單校驗(yàn)函數(shù)validate需要注意的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue語(yǔ)法之render函數(shù)和jsx的基本使用

    vue語(yǔ)法之render函數(shù)和jsx的基本使用

    這篇文章主要介紹了vue語(yǔ)法之render函數(shù)和jsx的基本使用,在Vue中是支持jsx的,凡是我們是比較少在Vue中使用jsx的,jsx在react中使用的更加廣泛,因此在這里我簡(jiǎn)單介紹一下jsx的基本使用,需要的朋友可以參考下
    2022-08-08
  • Vue通過(guò)axios發(fā)送ajax請(qǐng)求基礎(chǔ)演示

    Vue通過(guò)axios發(fā)送ajax請(qǐng)求基礎(chǔ)演示

    這篇文章主要介紹了Vue通過(guò)axios發(fā)送ajax請(qǐng)求基礎(chǔ)演示,包括了axios發(fā)送簡(jiǎn)單get請(qǐng)求,axios get傳參,axios發(fā)送post請(qǐng)求等基礎(chǔ)代碼演示需要的朋友可以參考下
    2023-02-02
  • Vue項(xiàng)目中使用Bootstrap

    Vue項(xiàng)目中使用Bootstrap

    這篇文章介紹了Vue項(xiàng)目中使用Bootstrap的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Vue extend使用示例深入分析

    Vue extend使用示例深入分析

    這篇文章主要介紹了Vue.extend使用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue3+el-table封裝示例詳解(編輯、刪除、查看詳情按鈕一起封裝)

    vue3+el-table封裝示例詳解(編輯、刪除、查看詳情按鈕一起封裝)

    在Vue3中,利用Element?Plus?UI庫(kù)封裝表格組件,實(shí)現(xiàn)編輯、刪除和查看詳情的功能,通過(guò)定義tableData和tableDataHeader來(lái)管理表格數(shù)據(jù)和表頭,其中tableData通常從后端獲取,而tableHeader可根據(jù)具體需求自定義,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問(wèn)題

    vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問(wèn)題

    這篇文章主要介紹了vue父元素點(diǎn)擊事件與子元素點(diǎn)擊事件沖突問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue3?使用Element?Plus表格單選帶checkbox功能

    Vue3?使用Element?Plus表格單選帶checkbox功能

    這篇文章主要介紹了Vue3?使用Element?Plus表格單選帶checkbox,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • 淺談Vue.js路由管理器 Vue Router

    淺談Vue.js路由管理器 Vue Router

    這篇文章主要介紹了Vue.js路由管理器 Vue Router,主要介紹的是路由元信息,命名路由以及嵌套路由等使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評(píng)論