云錦誠科技專注四川德陽網(wǎng)站設(shè)計 四川網(wǎng)站制作 四川網(wǎng)站建設(shè)
        四川德陽網(wǎng)站建設(shè)公司服務(wù)熱線:028-86922220

        網(wǎng)站建設(shè)知識

        十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊

        量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決

        如何在vue中將echart封裝為組件

        這篇文章主要介紹“如何在vue中將echart封裝為組件”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何在vue中將echart封裝為組件”文章能幫助大家解決問題。

        成都創(chuàng)新互聯(lián)公司主營葉縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),葉縣h5微信小程序開發(fā)搭建,葉縣網(wǎng)站營銷推廣歡迎葉縣等地區(qū)企業(yè)咨詢

        1. 安裝Echarts

        首先第一步,肯定是安裝Echarts了。通過cd命令進入項目根目錄,然后敲以下命令行:

        cnpm install echarts -S

        安裝成功會如下顯示,package.json里的dependencies屬性也會自動加上Echarts依賴:

        如何在vue中將echart封裝為組件

        安裝Echarts

        如何在vue中將echart封裝為組件

        package.json

        2.在vue項目中使用Echarts

        安裝成功以后,我們先要考慮的是如何在vue項目中導(dǎo)入Echarts,并成功初始化一個圖表。

        下面我會先建兩個.vue文件 chart.vue 和 radar-chart.vue 作為這次示例的基礎(chǔ)。 chart.vue的角色是調(diào)用雷達圖,radar-chart.vue的角色是提供雷達圖:

        //chart.vue 
        
        
        
        //radar-chart.vue
        
        

        好,正式創(chuàng)建一個Echarts圖表了

        (1)在radar-chart.vue導(dǎo)入echart :

         // 引入基本模板
         import echarts from 'echarts/lib/echarts'
         // 引入雷達圖組件
         import 'echarts/lib/chart/radar'
         // 引入提示框和圖例組件
         import 'echarts/lib/component/tooltip'
         import 'echarts/lib/component/legend'

        (2)創(chuàng)建圖表配置數(shù)據(jù),數(shù)據(jù)格式參考 Echarts官網(wǎng):

           const option = {
            tooltip: {},
            radar: {
             indicator: [{name: '體育', max: '100'}, {name: '數(shù)學(xué)', max: '100'}, {name: '化學(xué)', max: '100'}, {name: '勞動', max: '100'}, {name: '物理', max: '100'}],
             center: ['50%', '51%']
            },
            series: [{
             type: 'radar',
             itemStyle: {normal: {areaStyle: {type: 'default'}}},
             data: [
              {
               value: [58,56,78,64,98],
               name: '各項得分',
               itemStyle: {normal: {color: '#f0ad4e'}}
              }
             ]
            }]
           }

        (3)初始化圖表:

          const chartObj = echarts.init(document.getElementById('radar'))
          chartObj.setOption(option)

        上面幾步匯總為以下代碼,另外補充一點就是,創(chuàng)建配置數(shù)據(jù)option和初始化的時候,都要放在mounted鉤子函數(shù)里執(zhí)行,這樣才能保證獲取dom的是時候,dom已完成渲染:

        //chart.vue 
        
        
        
        //radar-chart.vue
        
        
        
        
         .container{width: 500px;height: 400px;}
        

        出來的效果是這樣的:

        如何在vue中將echart封裝為組件

        效果一

        3.將Echarts封裝為組件

        上面我們已經(jīng)成功創(chuàng)建一個雷達圖了,但是很明顯的是,radar-chart.vue里的數(shù)據(jù)寫死的,無法重復(fù)調(diào)用。接下來著手封裝的事情了。

        封裝的思路是這樣的:
        (1)chart.vue向radar-chart.vue傳遞一組個性化數(shù)據(jù)
        (2)radar-chart.vue通過props選項接收數(shù)據(jù)
        (3)提煉接收到的數(shù)據(jù),覆蓋配置數(shù)據(jù)option
        (4)初始化圖表
        (如果對如何傳遞數(shù)據(jù)不理解,可以先看看我在開始的時候提到的,我的另一篇文章 —— “ vue之父子組件間通信實例講解(props、$ref 、 $emit )”)

        具體代碼如下:

        //chart.vue (父組件)
        
        
        
        
        //radar-chart.vue (子組件)
        
        
        
        
        
         .container{width: 500px;height: 400px;}
        

        封裝以后,就能傳遞自定義的數(shù)據(jù),反復(fù)調(diào)用了。上面代碼最后的效果是這樣的:

        如何在vue中將echart封裝為組件

        效果二

        4.細(xì)節(jié)優(yōu)化

        基本的功能已經(jīng)實現(xiàn)了,下面我們來優(yōu)化下一些細(xì)節(jié)。

        不知道大家有沒發(fā)現(xiàn)radar-chart.vue里的