javascript - 在 Vue JS 中是否可以让多个 vue 组件重用现有的数据结构和不同的数据?

标签 javascript vue.js highcharts vuejs2

我有两个 vue.js 组件,它们基于两个相同的数据结构,可以为其分配从服务器接收的不同值。

我想根据从服务器接收到的数据自动生成组件(可能在“for”循环中)。这个自动生成的组件应该具有相同的数据结构但不同的值。

例如,现在我已经实现了虚拟方法:

  • 我在模板中定义了两个 vue.js 组件
  • 它们基于两种不同的数据结构
  • 数据结构根据服务器响应单独更新。

我想成为怎样的人:

  • 根据我从服务器收到的系列数量,我有一个用于 n 个 vue.js 组件的“生成器”
  • 这些组件具有相同的 vue 数据结构
  • 数据结构根据服务器响应集中更新。

我当前的虚拟解决方案: https://jsfiddle.net/t2j80bpn/7/

最佳答案

听起来你的“生成器”只是一个计算出来的。使用 mapdata_from_server 转换为图表的对象数组。或者 visualize_data 可以将其转换为真实的数据项。

Vue.use(HighchartsVue.default)


let data_from_server = [
  [1, 2, 3, 1, 8, 1, 9, 2],
  [11, 2, 6, 1, 9, 10, 1, 2]
]

var app = new Vue({
  el: "#app",
  data() {
    return {
      dfs: []
    }
  },
  computed: {
    chartOptions() {
      return this.dfs.map((d, i) => ({
        id: i,
        chart: {
          type: 'spline'
        },
        title: `Chart ${i}`,
        series: [ {data: d}]
      }))
    }
  },
  methods: {
    visualise_data: function(event) {
      this.dfs = data_from_server;
    }
  }
});
<script src="https://unpkg.com/vue@latest/dist/vue.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/highcharts/highcharts-vue/1ce7e656/dist/script-tag/highcharts-vue.min.js"></script>

<div id="app">
  <button v-on:click="visualise_data">Change series</button>

  <highcharts v-for="opt in chartOptions" :options="opt" :key="opt.id"></highcharts>
</div>

关于javascript - 在 Vue JS 中是否可以让多个 vue 组件重用现有的数据结构和不同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54387443/

相关文章:

javascript - 多次加载js – Chrome问题

javascript - Vuetify 容器不会填满高度

javascript - 在 highcharts pdf 渲染中包含数据表

javascript - 平移多个 Y 轴之一以获取 Highcharts

javascript - 从可能的名称列表中随机选择 JavaScript 文件名称的简单方法

javascript - HTML Canvas 内容拉伸(stretch)到底部/右侧

javascript - Android、WebView 和 SpeechRecognition-API

javascript - Vuejs set方法返回模板

html - Vuetify 2 工具栏和 1 个抽屉导航,抽屉导航上方有 1 个工具栏

highcharts - 单击返回 xAxis 类别