Skip to content

Commit fae16ff

Browse files
committed
translated README.md into Japanese
1 parent c325e57 commit fae16ff

File tree

1 file changed

+318
-0
lines changed

1 file changed

+318
-0
lines changed

docs/ja/README.md

Lines changed: 318 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,318 @@
1+
---
2+
search: ja
3+
---
4+
5+
# vue-chartjs
6+
**vue-chartjs**[Chart.js](https://github.com/chartjs/Chart.js) をvueで使用するためのラッパーです。 再利用可能なチャートコンポーネントを簡単に作成できます。
7+
8+
## イントロ
9+
`vue-chartjs` vueの中であまり面倒なくchart.jsを使うことができます。 シンプルなチャートをできるだけ早く実行したいという人に最適です。
10+
11+
chart.jsの基本ロジックを抽象化していますが、公開されたchart.jsのオブジェクト使用して柔軟にカスタマイズできます。
12+
13+
## インストール
14+
Vue.jsの Version2以上を使用している場合は簡単にインストールできます。:
15+
16+
`yarn add vue-chartjs`
17+
18+
Vue.jsの Version 1.xを使用している場合は`legacy`タグを使用してください。しかし、vueのバージョン1はもうメンテナンスされません。
19+
20+
`yarn add vue-chartjs@legacy`
21+
22+
## クイックスタート
23+
24+
BaseChartをインポートしてextendします。
25+
26+
異なるデータのチャートを表示するときに柔軟性が大幅に向上します。
27+
コンポーネントをカプセル化し、プロパティをコンポーネントのデータに渡したり、コンポーネント内に直接データを記述することができます。ただし直接データを記述した場合はコンポーネントの再利用ができません。
28+
29+
パッケージ全体またはモジュールごとに個別にインポートすることができます。
30+
31+
```javascript
32+
// CommitChart.js
33+
import { Bar } from 'vue-chartjs'
34+
35+
export default Bar.extend({
36+
mounted () {
37+
// Overwriting base render method with actual data.
38+
this.renderChart(data, options)
39+
}
40+
})
41+
```
42+
43+
renderChart()メソッドに2つの引数を渡すことができます:
44+
45+
- Data object
46+
- Options object
47+
48+
### データオブジェクト
49+
50+
データオブジェクトは、次のようになります。:
51+
52+
```javascript
53+
{
54+
labels: ['January', 'February'],
55+
datasets: [
56+
{
57+
label: 'GitHub Commits',
58+
backgroundColor: '#f87979',
59+
data: [40, 20]
60+
}
61+
]
62+
}
63+
```
64+
65+
詳細については、[Chart.js](http://www.chartjs.org/docs/#chart-configuration-chart-data) のドキュメントをご覧ください。
66+
## プロパティ
67+
68+
BaseChartsには基本プロパティがいくつか定義されています。 extendされたときにそれらは明示的に表示されていませんが、使用するときに上書きして設定することができます。
69+
70+
| プロパティ | 説明 |
71+
|---|---|
72+
| width | chartの表示幅 |
73+
| height | chartの表示高さ |
74+
| chart-id | canvas要素のid |
75+
76+
77+
## 実装例
78+
79+
いくつか例を記載します。
80+
81+
### プロパティの利用
82+
83+
dataとoptionsプロパティを作成して、チャートにデータを渡すことが出来ます。
84+
85+
```javascript
86+
// LineChart.js
87+
import { Line } from 'vue-chartjs'
88+
89+
export default Line.extend({
90+
props: ['data', 'options'],
91+
mounted () {
92+
this.renderChart(this.data, this.options)
93+
}
94+
})
95+
```
96+
97+
コンポーネントに追加して、使用することができます。
98+
99+
```html
100+
<line-chart :data="{your data object}" :options="{your options}"></line-chart>
101+
```
102+
103+
幅と高さを上書きする場合:
104+
105+
```html
106+
<line-chart
107+
:data="{your data object}"
108+
:options="{responsive: false, maintainAspectRatio: false}"
109+
:width="400"
110+
:height="200"
111+
>
112+
</line-chart>
113+
```
114+
115+
<p class="warning">
116+
`width``height` を反映させるためには、 `responsive:false` を設定しなければならないことに注意してください。
117+
</p>
118+
119+
### コンポーネント内のローカルデータを使用する場合
120+
121+
```javascript
122+
import {Bar} from 'vue-chartjs'
123+
124+
export default Bar.extend({
125+
data () {
126+
return {
127+
datacollection: {
128+
labels: ['January', 'February'],
129+
datasets: [
130+
{
131+
label: 'Data One',
132+
backgroundColor: '#f87979',
133+
data: [40, 20]
134+
}
135+
]
136+
}
137+
}
138+
}
139+
mounted () {
140+
this.renderChart(this.datacollection, {responsive: true, maintainAspectRatio: false})
141+
}
142+
})
143+
```
144+
145+
### コンポーネントの再利用
146+
147+
チャートコンポーネントを再利用可能にしたい場合は、ラッパーを使用することをお勧めします。このようにすると、チャートコンポーネントはデータ表示とロジックを含むラッパーコンポーネントに対してのみ応答可能です。単一ページアプリケーションを実行している場合や、laravelで統合されている場合は、異なった方法があります。
148+
149+
150+
## リアクティブデータ
151+
152+
Chart.js はデータセットを変更したときのライブアップデートを提供していません。`vue-chartjs` ではこれを実現するために2つのミックスインを提供します。
153+
154+
- `reactiveProp`
155+
- `reactiveData`
156+
157+
この2つのミックスインは実際には同じものです。 ほとんどの場合 `reactiveProp` を使用します。これはチャートコンポーネントのロジックを拡張し、自動的に `chartData` という名前のプロパティを追加し、さらにこのプロパティに対して `vue watch` を追加します。 データの更新に対して、データセット内のデータのみが変更されたときには `update()` を呼び出し、新しいデータセットが追加された場合は `renderChart()` が呼び出されます。
158+
159+
`reactiveData` は単純に(プロパティではない!!)ローカルの chartData 変数を追加し、ウォッチャーを追加します。
160+
単一の目的のチャートのみ必要でチャートコンポーネント内でAPI呼び出しを行うときのみ有用です。
161+
162+
```javascript
163+
data () {
164+
return {
165+
chartData: null
166+
}
167+
}
168+
```
169+
170+
###
171+
172+
**LineChart.js**
173+
```javascript
174+
import { Line, mixins } from 'vue-chartjs'
175+
const { reactiveProp } = mixins
176+
177+
export default Line.extend({
178+
mixins: [reactiveProp],
179+
props: ['options'],
180+
mounted () {
181+
// this.chartData is created in the mixin
182+
this.renderChart(this.chartData, this.options)
183+
}
184+
})
185+
```
186+
187+
**RandomChart.vue**
188+
189+
```javascript
190+
<template>
191+
<div class="small">
192+
<line-chart :chart-data="datacollection"></line-chart>
193+
<button @click="fillData()">Randomize</button>
194+
</div>
195+
</template>
196+
197+
<script>
198+
import LineChart from './LineChart.js'
199+
200+
export default {
201+
components: {
202+
LineChart
203+
},
204+
data () {
205+
return {
206+
datacollection: null
207+
}
208+
},
209+
mounted () {
210+
this.fillData()
211+
},
212+
methods: {
213+
fillData () {
214+
this.datacollection = {
215+
labels: [this.getRandomInt(), this.getRandomInt()],
216+
datasets: [
217+
{
218+
label: 'Data One',
219+
backgroundColor: '#f87979',
220+
data: [this.getRandomInt(), this.getRandomInt()]
221+
}, {
222+
label: 'Data One',
223+
backgroundColor: '#f87979',
224+
data: [this.getRandomInt(), this.getRandomInt()]
225+
}
226+
]
227+
}
228+
},
229+
getRandomInt () {
230+
return Math.floor(Math.random() * (50 - 5 + 1)) + 5
231+
}
232+
}
233+
}
234+
</script>
235+
236+
<style>
237+
.small {
238+
max-width: 600px;
239+
margin: 150px auto;
240+
}
241+
</style>
242+
```
243+
244+
<p class="warning">
245+
⚠ 注意:親コンポーネントでデータを変更し、それを子チャートコンポーネントに渡す場合は、JavaScriptの制限事項に注意してください。
246+
この問題の詳細 [issue#44](https://github.com/apertureless/vue-chartjs/issues/44)
247+
</p>
248+
249+
### 制限事項
250+
<ul>
251+
<li>[注意事項](https://jp.vuejs.org/v2/guide/list.html#注意事項)</li>
252+
<li>[変更検出の注意事項](https://jp.vuejs.org/v2/guide/reactivity.html#変更検出の注意事項)</li>
253+
<li>[vm.$watch](https://jp.vuejs.org/v2/api/#vm-watch)</li>
254+
</ul>
255+
256+
## Chart.js オブジェクト
257+
258+
場合によっては、chart.jsをより詳細に制御する必要があります。Chart.jsインスタンスには `this._chart` を使ってアクセスします。
259+
260+
## 利用可能なグラフ
261+
262+
### 棒グラフ
263+
<p class="tip">
264+
棒グラフには `{Bar}``{HorizontalBar}` の2つのバージョンがあります。
265+
</p>
266+
267+
![Bar](assets/bar.png)
268+
### 折れ線グラフ
269+
270+
![Line](assets/line.png)
271+
272+
### ドーナツチャート
273+
274+
![Doughnut](assets/doughnut.png)
275+
276+
### パイチャート
277+
278+
![Pie](assets/pie.png)
279+
280+
### レーダーチャート
281+
282+
![Pie](assets/radar.png)
283+
284+
### 鶏頭図
285+
286+
![Pie](assets/polar.png)
287+
288+
### バブルチャート
289+
290+
![Bubble](assets/bubble.png)
291+
292+
293+
## ビルド方法の違い
294+
あなたが使用するビルドツールに依存した3つの異なるエントリーポイントがあります。 依存するライブラリは一緒にバンドルされているか、または peerDependency として指定します。
295+
296+
- Browser
297+
- Browserify / Webpack 1
298+
- Webpack 2
299+
300+
301+
| Build | Chart.js | Vue.js |
302+
|---|---|---|
303+
| vue-chartjs.full.js | Bundled | Bundled |
304+
| vue-chartjs.full.min.js | Bundled | Bundled |
305+
| vue-chartjs.js | peerDependency | peerDependency |
306+
| vue-chartjs.min.js | peerDependency | peerDependency |
307+
| es/index* | peerDependency | peerDependency |
308+
309+
### ブラウザー
310+
`vue-chartjs` をビルドツールを使用せず直接ブラウザー内で使用します。 例 [codepen](https://codepen.io/apertureless/pen/vxWbqB?editors=1010) このケースでは縮小版の `vue-chartjs.full.min.js` を使用します。これにはVue.js と Chart.js が 含まれていて、UMD Module として定義されています。従ってあなたはただ一つのファイルしか必要としません。
311+
312+
### Browserify / Webpack 1
313+
Gulp、BrowserifyまたはWebpackのバージョン1を使用している場合は、__トランスパイル__ され UMD Moduleとして __バンドル__ された `vue-chartjs.js` を使用します。
314+
315+
Vue.jsとChart.jsは `peerDependencies` なので別にインストールする必要があります。ほとんどのプロジェクトでは、Vue.jsはすでにインストールされているでしょう。この方法では、このパッケージと異なるバージョンのVue.jsとChart.jsを持つことができます。
316+
317+
### Webpack 2
318+
Webpack 2を使用している場合、 `jsnext:main` または `module``es/index.js` を指定します。 ソースファイルは __トランスパイル__ されます。またmoduleには __バンドル__ されません。このようにすると `tree shaking` が動作します。バンドル版のように、`peerDependencies` で指定された `Vue.js``Chart.js` はインストールする必要があります。

0 commit comments

Comments
 (0)