Webix Jet Framework

3.0.3 · active · verified Tue Apr 21

Webix Jet is a client-side JavaScript micro-framework designed to simplify the development and maintenance of single-page applications (SPAs) built with Webix UI components. As of version 3.0.3, it offers a structured approach to app creation through modules like apps, views, models, and services, implemented as ES6 classes. The framework emphasizes modularity, reusability, and efficient code organization, making it suitable for complex data management applications. Key differentiators include its lightweight footprint (under 10kb minified), a robust plugin system for common functionalities (e.g., menus, localization, authentication), and flexible routing capabilities. Since version 3.0, Webix Jet has migrated its default toolchain to Vite, while still maintaining compatibility with Webpack. It also boasts comprehensive TypeScript support since version 1.3, providing improved development experience with type safety and auto-completion. The project is actively maintained, with a cadence of significant major releases every few years and more frequent minor updates and patches, as confirmed by its documentation and community support.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart initializes a basic Webix Jet application with a single 'TopView' and renders it into the document body. It demonstrates the core setup of `JetApp` and `JetView` using TypeScript, including the necessary global exposure of the `webix` object.

import { JetApp, JetView } from 'webix-jet';
import 'webix/webix.css'; // Or your custom Webix skin
import * as webix from 'webix';

// Ensure Webix is globally available for the UI components
(window as any).webix = webix;

class TopView extends JetView {
    config() {
        return {
            rows: [
                { view: 'toolbar', elements: [{ template: 'My JetApp', type: 'header' }] },
                { template: 'Welcome to your Webix Jet application!', autoheight: true, borderless: true, css: 'webix_shadow_medium' }
            ]
        };
    }
}

class MyApp extends JetApp {
    constructor(config = {}) {
        const defaults = {
            start: '/top',
            views: { top: TopView }, // Define how to resolve 'top' to TopView
            debug: true
        };
        super({ ...defaults, ...config });
    }
}

webix.ready(() => {
    new MyApp().render(document.body);
});

view raw JSON →