Component tag

<vgg-data>

Description

The Data component is used to create a new data scope by either adding new data, or transforming its parent scope. For more information, check out the data loading and the data transformation documentation.

Props

Prop Required Types Default Description
data false [Array, Object] undefined Some supported data structure
format false String undefined Format of data structure
transform false [Array, Object] undefined Transformation(s) to be applied
dataID false String undefined ID for referencing from other data scope
allowEmpty false Boolean false When false, won't render children when receiving empty data

Usage

If none of the props are provided, the component will not do anything. If only the data prop is provided, the component will create a new data scope for its child components from the passed data:

<vgg-data :data="{ a: [1, 2, 3, 4], b: ['x', 'x', 'y', 'y'] }">

  <!-- Data scope: { a: [1, 2, 3, 4], b: ['x', 'x', 'y', 'y'] } -->

</vgg-data>

If only the transform prop is provided, the component will perform one or more transformations on its parent data scope, and use that as data scope for its children:

<vgg-data :data="{ a: [1, 2, 3, 4], b: ['x', 'x', 'y', 'y'] }">

  <!-- Data scope: { a: [1, 2, 3, 4], b: ['x', 'x', 'y', 'y'] } -->

  <vgg-data :transform="{ filter: row => row.a > 2 }">

    <!-- Data scope: { a: [3, 4], b: ['y', 'y'] } -->

  </vgg-data>

</vgg-data>

Finally, if both the data and the transform props are provided, the component will transform whatever was passed to data and use that as data scope for its children. If some data will only be used in its transformed form, it is recommended to use this method, as this only creates one data scope, which saves some memory and improves performance.

<vgg-data
  :data="{ a: [1, 2, 3, 4], b: ['x', 'x', 'y', 'y'] }"
  :transform="[
    { groupBy: 'b' },
    { summarise: { aMean: { a: 'mean' }, aSum: { a: 'sum' } } }
  ]"
>

  <!-- Data scope: { b: ['x', 'y'], aMean: [1.5, 3.5], aSum: [3, 7] } -->

</vgg-data>