;

DevExtreme Vue - What’s New in v24.1

Your Feedback Matters
We thank you for your continued support. Once you’ve reviewed the features/capabilities introduced in our v24.1 release cycle, please take a moment to complete our online survey. Your comments will help us refine our development plans for our v24.2 release set for release in December 2024.


New Splitter Component

Our new Splitter component allows you to divide a page or section into multiple adjustable panes.


Splitter Component - DevExtreme, DevExpress


These panes can be:

  • resizable - A handle with a drag icon allows users to modify size.
  • collapsible - A handle with an arrow icon allows users to collapse the pane.

If you enable both these properties, the handle displays both icons and users can both resize/collapse a given pane as desired. If both properties are false, the handle remains hidden.



Splitter: Resizable and Collapsible Panes - DevExtreme, DevExpress


The Splitter component can be oriented either vertically or horizontally. Orientation affects the following pane-related properties (can be specified in pixels or percents)


  • size - Specifies initial width (horizontal orientation) or height (vertical) of the pane.
  • maxSize, minSize - Defines resizing limits for the pane.
  • collapsedSize - Specifies the size of a collapsible pane when collapsed.

.vue
<template>
    <DxSplitter orientation="vertical">
        <DxItem
            :collapsible="true"
            size="50%"
            min-size="20px"
            collapsed-size="30px"
        />
    </DxSplitter>
</template>

Splitter panes can contain multiple content types, ranging from simple HTML to complex components. You can place HTML markup inside the item tag or use the following properties to populate panes with content:


  • itemTemplate - Defines a custom template for all panes.
  • template - Sets a custom template for each specific pane.

To customize Splitter appearance, specify the separatorSize property to modify the size of the handle's shorter side. You can also alter color and icons through CSS.


Enable allowKeyboardNavigation in the Splitter component to control Splitter actions through shortcut keys, mirroring mouse functions.
To see the full list of shortcuts, refer to the following help topic: Accessibility.


For complex layouts, nest Splitters as illustrated in our demo (which also highlights use of templates for content insertion).


Demo

With v24.1, you can replace the base button in DropDownButton with custom content (such as an avatar or multiline text).


DropDownButton with Custom Content - DevExtreme, DevExpress

.vue
<template>
    <DxDropDownButton
        icon="spindown"
        template="button-template"
    >
        <template #button-template="{ data }">
            <div class="text-container">
                <div class="name"> {{ currentEmployee.FirstName }} {{ currentEmployee.LastName }} </div>
                <div class="position"> {{ currentEmployee.Position }} </div>
            </div>
            <span :class="'dx-icon-' + data.icon + ' dx-icon'"></span>
        </template>
    </DxDropDownButton>
</template>

Demo

Submenus that exceed page size (in Menu or ContextMenu) can now be scrolled.


Item Scrolling in Menu and ContextMenu - DevExtreme, DevExpress

You can use CSS stylesheets to customize submenus as needs dictate. For instance, the following code snippet restricts submenu height in ContextMenu:

CSS
.dx-context-menu .dx-menu-items-container {
         max-height: 200px;
     }

In the Menu component, use the onSubmenuShowing function to configure scroll-related settings. For instance, you can restrict the size of the submenu when item count surpasses a specified limit:

.vue
function onSubmenuShowing({ submenuContainer, itemData } {
        if (itemData.items.length > 5) {
            submenuContainer.style.maxHeight = limitSubmenuHeight.value ? '200px' : '';
        }
    }

Menu Demo ContextMenu Demo

Form — Group Caption Custom Content


Our new Form groupItem.captionTemplate option enables custom content replacement for group captions.


Group Caption Custom Content - DevExtreme Form, DevExpress


Demo

HTML Editor — Spellcheck and CSP Support


The DevExtreme HTML Editor now uses spellcheck functionality across all supported browsers. As you would expect, this addition enhances text editing capabilities through real-time spelling correction/suggestion support.


Previous versions required Content Security Policy (CSP) directives when passing markup with inline styles to our HTML Editor. The DevExtreme HTML Editor v24.1 fully supports CSP.


Spellcheck and CSP Support - DevExtreme HTML Editor, DevExpress

JS Script Size


In our last major release cycle (v23.2), we reduced CSS size for built-in themes. In this release cycle, we reduced DevExtreme JS scripts size as follows:


  • We updated the ECMAScript compilation target for DevExtreme JS code. This eliminated the need for complicated syntactic constructions (due to transpiling) for operations supported by all modern browsers.
  • We ceased storage of time zone data. We switched to an internal browser time zone engine for time zone related operations.

These modifications reduced bundle size by approximately 12%.


DevExtreme JS Bundle Size, DevExpress

Shadow DOM Support (CTP)


Shadow DOM represents one of three Web Components specifications, complemented by HTML templates and Custom Elements.


Shadow DOM allows the attachment of a hidden, separate Document Object Model (DOM) to an element, termed the 'Shadow Host'. This hidden DOM, called the 'Shadow DOM', can contain additional nested Shadow Hosts, forming a structure known as a Shadow Tree.


It's a direct method to create components with isolated CSS and JavaScript. Many everyday web interfaces use Shadow DOM (a feature available in all major browsers).


This release cycle introduces Shadow DOM support in Angular, React, and Vue as a Community Technology Preview (CTP). Accordingly, you can now use DevExtreme components inside the Shadow DOM of custom HTML elements (Web Components).


Note: CTPs includes limitations. Refer to our documentation for additional information.


Codesandbox example

Accessibility


v24.1 accessibility-related enhancements include NVDA support for improved keyboard navigation and pronunciation support across the following components:


  • Tabs
  • TabPanel
  • TagBox
  • List
  • DropDownButton
  • Calendar
  • DataGrid with Master-Detail

Additionally, DataGrid and TreeList now meet the Status Messages criterion.


You can now access accessibility compliance (using the AXE® web accessibility evaluation tool) in many DevExtreme demos including the following:


AXE Accessibility Block - DevExtreme, DevExpress


Sample AXE accessibility report:


AXE Accessibility Report - DevExtreme, DevExpress

Your Feedback Matters
We thank you for your continued support. Once you’ve reviewed the features/capabilities introduced in our v24.1 release cycle, please take a moment to complete our online survey. Your comments will help us refine our development plans for our v24.2 release set for release in December 2024.