Aura コンポーネントで Chart.js を使ってみる
今回は、 Lightning(Aura) コンポーネントから Chart.js ライブラリを読み込んでグラフを表示するコンポーネントを作ってみます。
Chart.js ライブラリをアップロード
Aura フレームワークでサードパーティのライブラリを読み込む際は、必要なライブラリを全て静的リソースにアップロードしておく必要があります。
まずは以下の様に、Chart.min.js と Chart.min.css を抜き出し圧縮しておきます。
(必要であればその他のライブラリも全て追加しておきます)
その後、セールスフォース上で 設定 > カスタムコード > 静的リソース > 新規
から静的リソースをアップロードします。
Aura コンポーネントのサンプル
Chart.js のドキュメント にあるサンプルコードを Aura コンポーネントで再現してみました。
<aura:component access="global" implements="flexipage:availableForAllPageTypes" >
<!-- External Libraries -->
<!-- グラフの初期化処理には js ファイルの読み込み完了を待つ必要があるので、 -->
<!-- js ファイルに対する ltng:require にのみ afterScriptsLoaded ハンドラーを指定する -->
<ltng:require styles="{!$Resource.ChartJSAsset + '/css/Chart.min.css'}" />
<ltng:require scripts="{!$Resource.ChartJSAsset + '/js/Chart.min.js'}"
afterScriptsLoaded="{!c.onAfterScriptsLoaded}"/>
<!-- User Inteface -->
<div>
<div class="slds-box slds-theme_default">
<div class="chart-container" >
<canvas aura:id="canvas" ></canvas>
</div>
</div>
</div>
</aura:component>
({
onAfterScriptsLoaded : function(c, e, h) {
// cnavas 要素の取得には aura:id 属性をキーとして、コンポーネントに対し .find 関数を利用する
const ctx = c.find('canvas').getElement().getContext('2d');
const myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
}
})
Author And Source
この問題について(Aura コンポーネントで Chart.js を使ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/hrk623/items/3b898180d3fc6aade285著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .