Vue 統計グラフのデータ移行とバックアップのスキル
インターネットの急速な発展に伴い、データは企業の意思決定と分析の重要な基盤となっています。統計グラフはデータを視覚化するための重要なツールです。 Vue の開発では、Echarts や Highcharts など、さまざまな統計グラフのコンポーネント ライブラリがよく使用されます。この記事では、Vue 統計グラフのデータ移行とバックアップのテクニックを紹介し、読者の参考となるコード例を添付します。
1. データ移行スキル
実際のプロジェクトでは、異なるコンポーネント間でデータを共有する必要がある状況がよくあります。統計グラフ コンポーネントを使用する場合、通常はデータをグラフ コンポーネントに渡して表示する必要があります。以下は簡単な例です。
<template> <div> <bar-chart :data="chartData"></bar-chart> </div> </template> <script> import BarChart from './BarChart.vue'; export default { components: { BarChart }, data() { return { chartData: [ { name: 'A', value: 100 }, { name: 'B', value: 200 }, { name: 'C', value: 300 } ] } }, } </script>
上記の例では、データは chartData
属性を通じて BarChart
コンポーネントに渡され、コンポーネントに表示されます。このシンプルなデータ転送方法は小規模なプロジェクトではうまく機能しますが、大規模なプロジェクトではより複雑なデータ管理が必要になることがよくあります。ここでは、一般的に使用される 2 つのデータ移行手法を紹介します。
Vuex は、Vue 用に公式に推奨される状態管理ライブラリです。 Vuex を使用すると、データをグローバル状態で保存し、任意のコンポーネントからアクセスできます。以下は、データ管理に Vuex を使用する例です。
まず、store.js
でグローバル データ ウェアハウスを定義します。
import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { chartData: [ { name: 'A', value: 100 }, { name: 'B', value: 200 }, { name: 'C', value: 300 } ] }, mutations: { updateChartData(state, data) { state.chartData = data; } }, actions: { setChartData({ commit }, data) { commit('updateChartData', data); } }, getters: { getChartData(state) { return state.chartData; } } });
次に、使用する必要があるときに、データ コンポーネント内で、mapState
関数と mapActions
関数を使用して、データをコンポーネントのプロパティとメソッドにマップします。
<template> <div> <bar-chart :data="chartData"></bar-chart> </div> </template> <script> import { mapState, mapActions } from 'vuex'; import BarChart from './BarChart.vue'; export default { components: { BarChart }, computed: { ...mapState(['chartData']) }, methods: { ...mapActions(['setChartData']) }, } </script>
上記の構成により、次のことが可能になります。コンポーネント chartData
データにアクセスして変更し、データの移行と共有を実現します。
Vue では、別のデータ転送方法、つまり provide
と inject を使用することもできます。
。 provide
親コンポーネントにデータを提供できます。inject
子コンポーネントにデータを注入できます。 provide
と inject
を使用したデータ受け渡しの例を次に示します。
<template> <div> <bar-chart></bar-chart> </div> </template> <script> import BarChart from './BarChart.vue'; export default { components: { BarChart }, provide() { return { chartData: [ { name: 'A', value: 100 }, { name: 'B', value: 200 }, { name: 'C', value: 300 } ] }; } } </script>
BarChart.vue
コンポーネントで、 inject # を渡します。 ##コンポーネントにデータを挿入する:
<template> <div> <your-chart :data="chartData"></your-chart> </div> </template> <script> import {inject} from 'vue'; export default { inject: ['chartData'], // 其他组件代码 } </script>
BarChart.vue コンポーネント内の
chartData データにアクセスして表示できます。
import {reactive} from 'vue'; export default { setup() { const chartData = reactive(localStorage.getItem('chartData') || []); // 监听数据变化,保存到LocalStorage watch(chartData, () => { localStorage.setItem('chartData', JSON.stringify(chartData)); }); return {chartData}; } }
reactive 関数を使用して応答性の高いデータ オブジェクト
chartData を作成し、
localStorage を渡します。 .getItem メソッドはローカル ストレージからデータを復元します。
watch 関数を使用してデータの変更を監視し、変更があった場合にオブジェクトを文字列に変換して LocalStorage に保存します。こうすることで、ユーザーがページを更新したりブラウザを閉じたりした場合でも、データは保持されます。
mongoose 依存関係をインストールする必要があります。
npm install mongoose
db を作成します。 Vue プロジェクト。データベースへの接続に使用される js ファイル:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/chart-data', { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function () { console.log('Connected to MongoDB'); }); module.exports = db;
ChartData モデルを作成します:
const mongoose = require('mongoose'); const chartDataSchema = new mongoose.Schema({ name: String, value: Number }); module.exports = mongoose.model('ChartData', chartDataSchema);
db.js ファイルと
ChartData モデルを導入し、業務ニーズに応じて利用します。以下は簡単な例です:
import db from './db'; import ChartData from './ChartData'; export default { async setup() { const chartData = ref([]); // 从数据库中获取数据 chartData.value = await ChartData.find(); // 数据变化时保存到数据库 watch(chartData, async () => { await ChartData.deleteMany(); await ChartData.insertMany(chartData.value); }); return {chartData}; } }
以上がVue 統計グラフのデータ移行とバックアップのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。