@toast-ui/vue-grid

TOAST UI Grid for Vue

Usage no npm install needed!

<script type="module">
  import toastUiVueGrid from 'https://cdn.skypack.dev/@toast-ui/vue-grid';
</script>

README

TOAST UI Grid for Vue

This is Vue component wrapping TOAST UI Grid.

vue2 npm version

🚩 Table of Contents

Collect statistics on the use of open source

Vue Wrapper of TOAST UI Grid applies Google Analytics (GA) to collect statistics on the use of open source, in order to identify how widely TOAST UI Grid is used throughout the world. It also serves as important index to determine the future course of projects. location.hostname (e.g. > “ui.toast.com") is to be collected and the sole purpose is nothing but to measure statistics on the usage. To disable GA, use the following usageStatistics option when declare Vue Wrapper compoent.

var options = {
  ...
  usageStatistics: false
}

📙 Documents

💾 Install

Using npm

npm install --save @toast-ui/vue-grid

🔡 Usage

Load

You can use Toast UI Grid for Vue as moudule format or namespace. Also you can use Single File Component (SFC of Vue). When using module format and SFC, you should load tui-grid.css in the script.

  • Using EcmaScript module

    import 'tui-grid/dist/tui-grid.css';
    import { Grid } from '@toast-ui/vue-grid';
    
  • Using Commonjs module

    require('tui-grid/dist/tui-grid.css');
    var toastui = require('@toast-ui/vue-grid');
    var Grid = toastui.Grid;
    
  • Using Single File Component

    import 'tui-grid/dist/tui-grid.css';
    import Grid from '@toast-ui/vue-grid/src/Grid.vue';
    
  • Using namespace

    var Grid = toastui.Grid;
    

Implement

First insert <grid> in the template or html. rowData and columnData props are required.

<grid :data="gridProps.data" :columns="gridProps.columns" />

Load grid component and then add it to the components in your component or Vue instance.

TOAST UI Grid has its own reactivity system, and does not use the reactivity system of Vue. So, instead of adding props in the data, declare props in the created lifecycle method.

import 'tui-grid/dist/tui-grid.css';
import { Grid } from '@toast-ui/vue-grid';

export default {
  components: {
    grid: Grid
  },
  created() {
    this.gridProps = {
      data: [
        // for rowData prop
        {
          name: 'Beautiful Lies',
          artist: 'Birdy'
        },
        {
          name: 'X',
          artist: 'Ed Sheeran'
        }
      ],
      columns: [
        // for columnData prop
        {
          header: 'Name',
          name: 'name'
        },
        {
          header: 'Artist',
          name: 'artist'
        }
      ]
    };
  }
};

Props

All the options of the TOAST UI Grid are supported in the form of props. Note that data and columns props are required and other props are optional.

<grid
  :data="gridProps.data"
  :columns="gridProps.columns"
  :rowHeaders="gridProps.rowHeaders"
  :columnOptions="gridProps.columnOptions"
></grid>
  • theme and language props have been deprecated since v2.1.0. Use static methods.

Event

All the events of TOAST UI Grid are supported in the form of on[EventName] props. The first letter of each event name should be capitalized. For example, for using click event you can use onClick prop like the example below.

<template>
  <div class="container">
    <grid
      :data="gridProps.data"
      :columns="gridProps.columns"
      @click="onClick"
    ></grid>
  </div>
</template>
<script>
import 'tui-grid/dist/tui-grid.css';
import { Grid } from '../src/index.js';

export default {
  components: {
    grid: Grid
  },
  methods: {
    onClick(ev) {
      console.log('click event: ', ev);
    }
  }
};
</script>

Method

For use method, first you need to assign ref attribute of element like this:

<grid ref="tuiGrid" :data="rows" :columns="columns" />

After then you can use methods through this.$refs. We provide getRootElement and invoke methods.

  • getRootElement

    You can get root element of grid using this method.

    this.$refs.tuiGrid.getRootElement();
    
  • invoke

    If you want to more manipulate the Grid, you can use invoke method to call the method of tui.grid. First argument of invoke is name of the method and second argument is parameters of the method. To find out what kind of methods are available, see method of tui.grid.

    const info = this.$refs.tuiGrid.invoke('getFocusedCell');
    this.$refs.tuiGrid.invoke('setWidth', 500);
    

Static Methods

The wrapper component does not provide a way to call static methods of TOAST UI Grid. If you want to use static methods such as applyTheme or setLanguage you should use it via importing tui-grid directly.

import TuiGrid from 'tui-grid';

TuiGrid.setLanguage('ko');
TuiGrid.applyTheme('striped');