New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

vtyx

Package Overview
Dependencies
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vtyx

VueJS 3.x with Typescript & JSX

latest
Source
npmnpm
Version
4.4.3
Version published
Maintainers
2
Created
Source

vtyx

VueJS 3.X + Typescript + JSX

npm

Introduction

A module allowing the use of Typescript and JSX to declare VueJS components.

It provides all the necessary definitions to use Vue components with strong typings, in particular in the render function.

It uses both vue-class-component and vue-property-decorators to allow the use of class syntax for Vue components.

In addition, it provides JSX typings so that the render function of components can be written in JSX, enabling type checking.

Example

import { Vue, Prop, Component, Emits, h /* (1) */ } from 'vtyx';

interface ChildProps {
    title: string;
}

// (2)
@Component
class Child extends Vue<ChildProps> {
    @Prop()
    title: string;

    @Emits(['click'])
    render() {
        return (
          // type checking on intrinsic elements
          <a
            href="#"
            onClick={() => this.$emit('click')}
          >
            {title}
          </a>
        );
    }
}

@Component
class Parent extends Vue<{}> {
    hide = false;

    render() {
        return (
          <Child
            class={['c1', { 'c2': true, 'c3': false }]}
            prop1="foo" // type checking on components
            on={{
                // event modifiers handled
                'change.prevent.default': () => this.hide = !this.hide,
            }}
            v-visible={this.hide} // a few directives are available
          />
        );
    }
}
  • (1) A "render wrapper" is required to transform the JSX arguments into the complex arguments of vue's createElement function.
  • (2) See vue-class-component and vue-property-decorators for the class syntax.

Features

  • JSX type definitions for intrinsic elements (mostly taken from @types/react).
  • onClick, onChange, onInput available on intrinsic elements.
  • For a foo event, either onFoo=... or on={{ 'foo': ... }} can be used. Event modifiers can be used, but only in the on={{ 'foo.modifier': ... }} syntax.
  • class, key and ref are handled. See The Vue documentation for more details.
  • A few directives are available: v-visible and v-html.
  • no v-model or v-bind
  • Some additional features available in the createElement API may be missing. It either means we never had a use for it, or that it cannot fit with the JSX design.

FAQs

Package last updated on 15 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts