Get Started with Kendo UI for Vue
Prefer video tutorials? How about a free Telerik UI onboarding course? Check out the Kendo UI for Vue with TypeScript training in Telerik Virtual Classroom.
This tutorial will help you develop a simple app that includes a native Vue Data Grid component. To achieve this, you will build a project using Vite and the Vue Composition API paired with Nuxt 3
Curious about JavaScript or the Composition API? This tutorial comes in several additional variants:
Historically, all Kendo UI for Vue Native components have supported both Vue 2 and Vue 3. However, Kendo UI for Vue versions released after November 2024 will no longer support Vue 2. For more information, see Vue 2 End of Life.
Create the Vue Project
- Create a Nuxt project named
my-app
:
npx nuxi init my-app
- Run the newly created project by executing the following commands:
cd my-app
npm install
npm run dev
Clean Up the Generated Project
Before you start playing with Kendo UI for Vue, clean up the sample app created by Nuxt:
- Delete the
<NuxtWelcome />
line inside theapp.vue
file
Add Application Data
Add dummy data needed by the components. Create folder appdata
in the src
folder. Add the following files to the appdata
folder.
-
Create a new
appdata/categories.ts
file. Copy the content of this GitHub file and paste it into thecategories.ts
file. -
Create a new
appdata/products.ts
file. Copy the content of this GitHub file and paste it into theproducts.ts
file.
Install the Data Grid Component
Kendo UI for Vue is distributed as multiple NPM packages, scoped to @progress
. For example, the name of the Grid package is @progress/kendo-vue-grid
. To use the Grid in your app, add the component and its dependencies:
npm install --save @progress/kendo-vue-grid @progress/kendo-data-query @progress/kendo-licensing @progress/kendo-vue-animation @progress/kendo-vue-data-tools @progress/kendo-vue-dateinputs @progress/kendo-vue-dropdowns @progress/kendo-vue-inputs @progress/kendo-vue-indicators @progress/kendo-vue-intl @progress/kendo-vue-popup
or
yarn add @progress/kendo-vue-grid @progress/kendo-data-query @progress/kendo-licensing @progress/kendo-vue-animation @progress/kendo-vue-data-tools @progress/kendo-vue-dateinputs @progress/kendo-vue-dropdowns @progress/kendo-vue-inputs @progress/kendo-vue-indicators @progress/kendo-vue-intl @progress/kendo-vue-popup
Import the CSS Styles
Kendo UI for Vue includes four artfully designed themes available as separate NPM packages. To style the components, you can use each theme as is or customize it to your liking.
-
Install the Default theme:
npm install --save @progress/kendo-theme-default
or
yarn add --save @progress/kendo-theme-default
-
In the
nuxt.config.ts
file, import the CSS files provided by the installed theme package:import '@progress/kendo-theme-default/dist/all.css';
Add a Vue Data Grid Component
- Now that you've installed all required packages, you are ready to add the Kendo UI for Vue Data Grid to the application.
npx nuxi add page KendoGrid
- In the
pages/KendoGrid.vue
file, add a<script>
block and import the Grid and its data:
import { productsData } from '../appdata/products';
import { process, DataResult, State, CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query';
import { Grid as grid } from '@progress/kendo-vue-grid';
- Add a
<template>
block with a simple heading and create a Data Grid. Bind it to theproducts
data:
<grid
:data-items="products"
:columns="columns"
></grid>
- Add the Data Grid's data and columns in the
setup
section of theKendoGrid.vue
file:
const products = productsData;
const columns = [
{ field: 'ProductName', title: 'Product Name' },
{ field: 'UnitPrice', title: 'Price' },
{ field: 'UnitsInStock', title: 'Units in Stock' },
{ field: 'Discontinued' }
] as GridColumnProps[];
These steps let you render a very basic Grid by running npm run dev
and navigating to the local URL displayed in the terminal.
Notice the
No valid license found
message and the watermark in the Grid. They are informational and encourage you to activate your trial or commercial license and to add a license file to your application. Once you complete these licensing steps, the license message and the watermark will disappear.
Now that you have a running Grid, you are ready to use some of its basic features like sorting and paging:
-
In the Grid declaration, add paging, sorting, and a height style that activates scrolling.
<template> <h1>Hello Kendo UI for Vue!</h1> <grid :data-items="products" :columns="columns" :pageable="pageable" :sortable="sortable" :style="{ height: '400px' }" ></grid> </template>
-
Implement the paging and sorting functionality in the
data
option:
- Set the page size (
take
) to 10. - Set the initial
skip
for the paging. - Set the initial sorting by Product name.
const skip = ref<number | undefined>(0);
const take = ref<number | undefined>(10);
const sort = ref<SortDescriptor[] | undefined>([
{ field: "ProductName", dir: "asc" }
]);
Get the Complete Source Code
Your Kendo UI for Vue Getting Started application is complete! You can download and run the complete sample application from the kendo-vue GitHub repository. Alternatively, run, fork and experiment with the application directly in StackBlitz.