WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

WeChatミニプログラムでEchartとサブパッケージを使用するための完全な手順

序文

休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデータをグラフで表示することが、私に割り当てられた休日前の調査タスクです。インターネットで大手の記事をチェックし、Ucharts、F2、Wx-charts、Echarts について学びました。試したのは F2 と Echarts だけです。Echarts が最近更新され、Echarts に詳しくなったため、Echarts を選択しました。F2 も試しましたが、うまくいきましたが、あまり詳しくなかったので諦めました。

さあ、本題に入りましょう

まず、Echarts に関する他の人の記事を見て、公式サイトへのリンクが貼られていました。その後、公式サイトに行って読んでみました。比較的簡単でした。ここにもリンクを貼っておきます。一般的な手順

1. 公式サイトのサンプルをダウンロードします。

2. 公式サイトのサンプルにあるec-canvasフォルダをプロジェクトディレクトリにコピーします。

3. コンポーネントを使用するのと同じように、特定のページに ec-canvas を導入します。

4. 特定のページの js で初期化します。

公式ウェブサイトの例をダウンロードしたら、echarts.js、wx-canvas.js、ec-canvas が含まれる ec-canvas フォルダーを見つけます。次に、このフォルダを自分のプロジェクトのディレクトリにコピーします。最初は utils の下に置き、サブパッケージ化してから別の場所に置きます。ここでは utils の下に置きます。その後、プロジェクトは 700 KiB 以上大きくなりました。

ページ

xxx.json

{
 "コンポーネントの使用": {
 "ec-canvas": "xxx/xxx/xxx/ec-canvas/ec-canvas"
 }
}

xxx.wxml

<view class="container-echarts margin-top-10">
 <ec-canvas class="mycharts" id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
</ビュー>

xxx.js は、次の initChart メソッドを使用する前に、まず echarts をインポートする必要があるため、配置された ec-canvas のパスに従って echarts をインポートします。

import * as echarts from 'xxx/xxx/xxx/ec-canvas/echarts'; // 配置されたec-canvasのパスに従ってechartsをインポートします
let chart = null // 変数を使用して echarts の初期化を保存します let options = { // グラフィックス設定、echarts を使用したことがある人なら誰でも意味がわかります~以下は公式サイトの折れ線グラフ xAxis の基本的な例です: {
  タイプ: 'カテゴリ',
  データ: ['月', '火', '水', '木', '金', '土', '日']
 },
 y軸: {
  タイプ: '値'
 },
 シリーズ: [{
  データ: [150, 230, 224, 218, 135, 147, 260],
  タイプ: 'line'
 }]
} 
function initChart(canvas, width, height, dpr) { // ここで canvas, width, height, dpr は無視できます const chart = echarts.init(canvas, null, {
 幅: 幅、
 高さ: 高さ、
 devicePixelRatio: dpr // ピクセル});
 キャンバスにチャートを設定します。
 chart.setOption(オプション);
 リターンチャート;
}

ページ({
 データ: {
 ec: {
  onInit: initChart // ここで括弧を追加しないでください。
 }
 }
});

保存して実行します。この時点で、echarts は理論的には結果を表示できますが、自分でデバッグする必要があります。

echartsの初期化を省くためにチャート変数を使います。公式サイトもメソッド内にオプションを書いているのでそれを取り出しました。では、チャートは何の役に立つのでしょうか?ほとんどのデータは非同期的に取得されるため、echarts は動的にレンダリングする必要があります。データが取得されると、このチャートが使用されます。

チャート.setOption({
 x軸:
 データ: newData.map(item => {
  アイテム[0]を返します。
 })
 },
 シリーズ: {
 データ: newData.map(item => {
  アイテム[1]を返す。
 })
 }
})

ここでのデータ形式に関しては、各人のオプションでどのような画像をレンダリングしたいかを参考にしてください。公式サイトで提供されているサンプルポータルを使用しています。echartsのデータ更新はsetOptionを使用して直接更新できます。

開発者ツールでのズームとスクロールは機能しませんでしたが、試用版にアップロードした後、携帯電話では機能しました。 WeChatのキャンバスにはtype="2d"があります。ec-canvasでtype="2d"を使用する場合は、ec-canvas.jsを変更する必要があります。

データ: {
 isUseNewCanvas: true // ここで true に変更します。デフォルトは false です。
}

理由: isUseNewCanvas はデフォルトでは false であり、これはキャンバスの古いバージョンです。

<!-- 新機能: H5 に合わせたインターフェース -->
<canvas wx:if="{{isUseNewCanvas}}" type="2d" class="ec-canvas" canvas-id="{{ canvasId }}" bindinit="init" bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}" bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}" bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"></canvas>
<!-- 古い -->
<canvas wx:else class="ec-canvas" canvas-id="{{ canvasId }}" bindinit="init" bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}" bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}" bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"></canvas>

echarts.js はサイズが大きく、アップロードプロジェクトには 2 MiB の制限があります。

ダウンロードしたec-canvas内のecharts.jsは数百KiBあり、2MiBに比べるとかなり大きいです。プロジェクトをアップロードしたところ、制限を超えたというメッセージが表示されました。すぐに効果がありそうな方法は、echarts.jsのサイズを小さくすることと、別のパッケージに分割することの2つしか思いつきませんでした。

echarts.js のサイズが大きい問題

echartsの公式サイト(ポータル---オンラインカスタマイズ)には、オンデマンド構築方法があります。以下のオンラインカスタマイズに入り、必要なグラフを選択します。私は折れ線グラフと直交座標系を選択しました。コンポーネントでは、ブラシ選択、ツールバー、カスタムグラフィック以外のすべてのコンポーネントを選択しました。他のオプションでもsvgをチェックしました。次に、ダウンロードをクリックして構築ページに入ります。構築が完了すると、echarts.min.jsファイルが自動的にダウンロードされ、サイズが約200 KiB削減されます。次に、名前を echarts.js に変更し、ec-canvas で置き換えます。

アップロードプロジェクトの 2MiB 制限の問題

echarts.js のサイズは縮小されましたが、サブパッケージ化というアップロード制限の問題は依然として存在します。

app.jsonにはサブパッケージがあります

{
 「サブパッケージ」: [
 {
  "ルート": "xxx/xxx",
  "名前": "xxx",
  「独立」:偽、
  「ページ」: [
  「ページ/xxx」、
  「ページ/xxx」、
  「ページ/xxx」
  ]
 },
 {
  "ルート": "baoziTask/",
  "名前": "包子",
  「ページ」: [
  「ページ/roubaozi/roubaozi」
  ]
 }
 ]、
}

このサブパッケージは公式サイトで非常に簡単に説明されていますが、私が使用したときにはこのように理解しました。

ルートはサブパッケージ化されるパスであり、ルート ディレクトリに配置します。そうすると、baoziTask の下にあるすべてのファイルがパッケージとして扱われます。 baoziTask パスにないすべてのファイルは、アプリのメイン パッケージにパッケージ化されます。

name は、事前ダウンロード中に使用されるサブパッケージのエイリアスです。この事前ダウンロードは、特定のページにいるときに、アクセス速度を向上させるために使用される可能性のあるサブパッケージを積極的にダウンロードすることを意味します。たとえば、特定のページに入ると、どこかをクリックして特定のサブパッケージにジャンプする可能性が高くなります。このとき、ジャンプ時にこのサブパッケージをダウンロードするのではなく、事前にダウンロードすることができます。

独立というのは下請けが独立しているかどうかということだが、使ったことがないので直感的にわからない。アプリ本体のパッケージに依存せず、独立して実行できるとのこと。これには、コードのダウンロードではなく、preloadRule の設定が必要です。詳細については、公式サイトを参照して自分で試してみる必要があります。ポータル---サブパッケージの事前ダウンロード

ページはパッケージ内のページなので、理解しやすいです。

これらのサブパッケージ内のページにジャンプしたい場合は、ジャンプ URL に正しいパスを記述するだけです。たとえば、roubaozi にジャンプする場合、URL は次のように記述されます。

url: '/baoziTask/pages/roubaozi/roubaozi'

下請けが成功したかどうかを確認するにはどうすればよいですか?

開発者ツールの右上隅に詳細ボタンがあります。クリックして詳細を表示し、下にスライドします。「ローカル コード」の行が表示されます。その後ろのサイズをクリックすると、メイン パッケージと各サブ パッケージのサイズが表示されます。メイン パッケージが 2MiB を超えていない場合は、アップロードは成功です。

群衆: KB と MB の間に i を追加するのはなぜですか?小津喬:正確に表現すると1024です

要約する

WeChatミニプログラムにおけるEchartsの使用と下請けに関するこの記事はこれで終わりです。WeChatミニプログラムEchartsと下請けに関するより関連性の高いコンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。皆様が今後も123WORDPRESS.COMを応援してくれることを願っています。

以下もご興味があるかもしれません:
  • WeChatアプレットでechartsを使用する方法
  • WeChatアプレットでEchartsチャートコンポーネントを使用する方法の詳細な説明
  • WeChatアプレットはechartsを使用してデータを取得し、折れ線グラフを生成します
  • ECharts を使用して WeChat アプレットでデータを非同期的にロードする方法
  • WeChatアプレットEchartsが通常のコンポーネントをカバーしてしまう問題の解決策
  • ECharts を使用してデータを非同期的に読み込み、WeChat アプレットでチャート機能を実装する
  • iOS の WeChat アプレットで Echarts チャートがスライドできない問題の解決方法
  • WeChatアプレットはEchartsチャートを横断して複数の円グラフを実現します
  • Taro WeChatアプレット開発におけるEchartsの落とし穴
  • WeChatミニプログラムの基本チュートリアル:Echartの使用

<<:  MySQL 5.7 でルートパスワードを忘れた後に変更する方法の詳細なチュートリアル

>>:  Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

推薦する

無料のパブリック STUN サーバー

無料のパブリック STUN サーバーSIP 端末がプライベート IP アドレスを使用する場合、スタン...

Linux インデックスノード inode の詳細な説明

1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...

SQL で行の最大値または最小値を取得する方法

元データと対象データSQL文を実装する(最大) 選択 店、 月、 最大(dz,fz,sp) が最大値...

Linux CentOS でスクリプトを定期的に実行するように設定する方法

多くの場合、サーバーでスクリプトを定期的に実行して操作をトリガーする必要があります。たとえば、Qin...

Linux で指定された期間に数分ごとにタスク スケジュール crontab を自動的に実行する方法

まずコードを見てみましょう #/bin/sh datename=$(日付 +%Y%m%d-%H%M%...

2012年のベストWebデザイン作品レビュー[パート1]

新年の初めに、友人の健康と2013年が素晴らしい年となることを心からお祈りいたします。この記事では、...

Vueは物流タイムライン効果を実現します

この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...

MySQLの日次統計レポートでは、その日にデータがない場合には0が入力されます。

1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によっ...

MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

MySQL解凍版とNavicatデータベース操作ツールのインストールは、以下のとおりです。 1. M...

デザイン理論:人間中心のグリーンデザイン

「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...

MySQLでインデックスエラーが発生する状況について簡単に説明します

以下に、トレーニング機関からのヒントと私自身の要約をいくつか示します。以下のインデックスの内容を説明...

MySQL マルチテーブル結合入門チュートリアル

接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...

JS の 6 つの継承方法とその長所と短所

目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...

タブバーのいくつかの実装方法(推奨)

タブ: カテゴリ + 説明タグバー: カテゴリ => ユーザーに現在地と目的地を知らせる1. ...

MySQL 5.7.18 winx64 のインストールと設定方法のグラフィックチュートリアル

圧縮パッケージのインストールは、mysql-5.7 以降、大幅に変更されました。この記事では、mys...