vue2 vue3 での Echarts の詳細な使用方法

vue2 vue3 での Echarts の詳細な使用方法

1. インストール

npm インストール echarts --save

2. vue2でEchartsを使用する

main.jsファイル内

// echarts をインポート
'echarts' から echarts をインポートします
Vue.prototype.$echarts = echarts 

コンテナが与えられた場合

<div id="myChart" :style="{幅: '300px', 高さ: '300px'}"></div>

echarts初期化はフック関数mounted()で行う必要があります。この関数は、 el が新しく作成されたvm.$elに置き換えられ、インスタンスにマウントされた後に呼び出されます。

// 基本テンプレートを導入する let echarts = require('echarts/lib/echarts')

//棒グラフコンポーネントを導入する require('echarts/lib/chart/bar')

//ツールチップとタイトルコンポーネントを導入する require('echarts/lib/component/tooltip')
'echarts/lib/component/title' が必要です

エクスポートデフォルト{
  名前: 'こんにちは',
  データ() {
    戻る {
      メッセージ: 'Vue.js アプリへようこそ'
    }
  },
  マウント() {
    この.drawLine();
  },
  メソッド: {
    描画線() {
      // 準備された DOM に基づいて、echarts インスタンスを初期化します。let myChart = echarts.init(document.getElementById('myChart'))
      // チャートのタイトルを描画: {
        テキスト: 「折れ線グラフの積み重ね」
    },
    ツールチップ: {
        トリガー: '軸'
    },
    伝説: {
        データ: ['メールマーケティング'、'アフィリエイト広告'、'ビデオ広告'、'ダイレクトアクセス'、'検索エンジン']
    },
    グリッド: {
        左: '3%'、
        右: '4%'、
        下: '3%'、
        ラベルを含む: true
    },
    ツールボックス:
        特徴:
            画像として保存: {}
        }
    },
    x軸:
        タイプ: 'カテゴリ',
        境界ギャップ: false、
        データ: ['月曜日'、'火曜日'、'水曜日'、'木曜日'、'金曜日'、'土曜日'、'日曜日']
    },
    y軸: {
        タイプ: '値'
    },
    シリーズ: [
        {
            名前:「電子メールマーケティング」
            タイプ: 'line'、
            スタック: '合計金額'、
            データ: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            名称:「アライアンス広告」
            タイプ: 'line'、
            スタック: '合計金額'、
            データ: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            名前:「ビデオ広告」
            タイプ: 'line'、
            スタック: '合計金額'、
            データ: [150, 232, 201, 154, 190, 330, 410]
        },
        {
            名前: 「直接アクセス」
            タイプ: 'line'、
            スタック: '合計金額'、
            データ: [320, 332, 301, 334, 390, 330, 320]
        },
        {
            名前:「検索エンジン」
            タイプ: 'line'、
            スタック: '合計金額'、
            データ: [820, 932, 901, 934, 1290, 1330, 1320]
        }
    ]
    }
  }
}

3. vue3でEchartsを使用する

setupにはthisがなく、まだレンダリングされていないため、 provide/injectを使用してsetupechartを導入できます。

ルートコンポーネント(通常はApp.vue)にechartを導入します。

'echarts' から * を echarts としてインポートします
'vue' から { provide } をインポートします
 
エクスポートデフォルト{
  名前: 'アプリ'、
  設定(){
    provide('echarts',echarts) //提供する
  },
  コンポーネント:
  }
}

ここで注意すべき点は、 import * as echarts from 'echarts'あり、 import echarts from 'echarts'はないことです。これは、echarts バージョン 5.0 のインターフェースが次のようになっているため、エラーが発生します。

輸出 { 
 EChartsFullOptionをEChartsOptionとして、 
 接続する、 
 切断、 
 処分する、
 getInstanceByDom、 
 IDによるインスタンス取得、 
 取得マップ、 
 初期化、
 登録ロケール、 
 レジスタマップ、 
 登録テーマ 
 };

使用する必要があるページでdivを定義します

<div id="ホームページトラフィックチャート" スタイル="幅: 600px; 高さ: 280px">

次に、Echartsを使用する必要があるページに挿入します。

エクスポートデフォルト{
  名前: 'data_page',
  設定 () {
    const トラフィックデータ = ref({})
    const echarts = inject('echarts')
    マウント時(() => {
      const myChart = echarts.init(document.getElementById('home-page-traffic_chart'))
      // チャートを描画する myChart.setOption({
        タイトル:
          テキスト: 「今日の通話統計」
        },
        ツールチップ: {
          トリガー: '軸'、
          軸ポインタ:
            タイプ: '影'
          }
        },
        グリッド: {
          左: '3%'、
          右: '4%'、
          下: '3%'、
          ラベルを含む: true
        },
        x軸: [
          {
            タイプ: 'カテゴリ',
            データ: ['月', '火', '水', '木', '金', '土', '日'],
            軸目盛り: {
              ラベルに合わせる: true
            }
          }
        ]、
        y軸: [
          {
            タイプ: '値'
          }
        ]、
        シリーズ: [
          {
            名前: 「直接アクセス」
            タイプ: 'バー'、
            バー幅: '60%',
            データ: [10, 52, 200, 334, 390, 330, 220]
          }
        ]
      })
      window.onresize = 関数 () {
        myChart.サイズ変更()
      }
    })
    戻る {
    }
  }

}

効果画像:

以下もご興味があるかもしれません:
  • vue で vue-echarts-v3 を使用するサンプルコード
  • Echarts を使用して棒グラフを描く vue の詳細な説明
  • Django での視覚化に echarts を使用する練習
  • WeChatミニプログラムの基本チュートリアル:Echartの使用
  • ネイティブechartとvue-echartの使用に関する詳細な説明

<<:  MySQL サブクエリとグループ化されたクエリ

>>:  Nginx における 2 つの現在の制限方法についての簡単な説明

推薦する

nginx+php-fpm サービスの HTTP ステータス コード 502 の詳細な分析

弊社の Web プロジェクトの 1 つでは、新しい都市の増加によりトラフィックと DB 負荷が増加し...

Linux に Python クローラー スクリプトを展開し、スケジュールされたタスクを設定する方法

昨年、プロジェクトの必要性により、Python でクローラーを作成しました。クロールされたデータは、...

dns-prefetch とは何ですか? フロントエンドの最適化: DNS の事前解決によりページ速度が向上します

目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...

最新バージョンMySQL5.7.19 解凍版インストールガイド

MySQL バージョン: MySQL Community Edition (GPL) ------ ...

メタ情報に基づいて時間指定のページ更新またはリダイレクトを実装する

メタを使用して、ページの時間指定更新またはジャンプを実装します。 XML/HTML コードコンテンツ...

Linux環境変数の設定戦略の詳細な説明

ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定する必要があります。以下...

JavaScript マクロタスクとマイクロタスク

マクロタスクとマイクロタスクJavaScript はシングルスレッド言語です (マルチスレッドの場合...

JavaScript 文字列オブジェクトメソッド

目次文字列オブジェクトのメソッド方法 1: indexOf() (推奨)方法 2: search()...

MySQL 8.0.18はデータベースにユーザーを追加し、権限を付与します

1. データベースにログインするには、rootユーザーを使用することをお勧めします。 mysql -...

td セルを結合した場合の td 幅の問題

以下の例では、名前が入っている td の幅が 60px のとき、2 行目の文字数が少ない場合は正常に...

CSSクラス名の問題の詳細な説明

数字で始まる次の CSS クラス名は有効になりません。 .1番目{ 色: 赤; }有効な CSS ク...

html+vue+element-ui のスムーズさを 1 分で体験

テクノロジーファンHTMLウェブページ、知っておくべきYouyou が開発した vue フロントエン...

Linux での syslogd および syslog.conf ファイルの解釈

1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...

フレックスレイアウトではサブアイテムの高さを維持できる

Flex レイアウトを使用すると、水平に配置すると、すべての子項目の高さが同じになることがわかります...

Dockerはコンテナ外のコンテナ内でコマンドを実行します

コンテナ内でコマンドを実行したいが、コンテナに入りたくない場合があります。ではどうすればいいでしょう...