Socket
Socket
Sign inDemoInstall

@vue/runtime-dom

Package Overview
Dependencies
3
Maintainers
1
Versions
210
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vue/runtime-dom


Version published
Weekly downloads
3M
decreased by-0.92%
Maintainers
1
Created
Weekly downloads
 

Package description

What is @vue/runtime-dom?

The @vue/runtime-dom package is a core part of Vue.js, specifically designed for working with the DOM in web browsers. It provides methods and utilities for managing the DOM, handling events, and rendering components dynamically. This package is essential for building interactive web applications using Vue.js.

What are @vue/runtime-dom's main functionalities?

DOM Manipulation

This feature allows developers to manipulate the DOM by creating and mounting Vue components. The code sample demonstrates how to create a simple Vue application that renders 'Hello World' inside a div element.

import { createApp, h } from 'vue';
const App = { render() { return h('div', 'Hello World'); } };
createApp(App).mount('#app');

Event Handling

This feature enables handling of user events such as clicks. The code sample shows how to create a Vue component with a button that alerts the user when clicked.

import { createApp, h } from 'vue';
const App = {
  render() {
    return h('button', {
      onClick: this.handleClick
    }, 'Click me');
  },
  methods: {
    handleClick() {
      alert('Button clicked');
    }
  }
};
createApp(App).mount('#app');

Component Rendering

This feature deals with rendering components within other components. The code sample illustrates how to define and render nested components using Vue's composition API.

import { createApp, defineComponent, h } from 'vue';
const ChildComponent = defineComponent({
  render() {
    return h('p', 'I am a child component');
  }
});
const ParentComponent = defineComponent({
  render() {
    return h('div', [
      h('h1', 'This is a parent component'),
      h(ChildComponent)
    ]);
  }
});
createApp(ParentComponent).mount('#app');

Other packages similar to @vue/runtime-dom

Changelog

Source

3.4.1 (2023-12-30)

Bug Fixes

  • compat: correct enum value for COMPILER_FILTERS feature (#9875) (77d33e2)
  • defineModel: always default modifiers to empty object (9bc3c7e), closes #9945
  • defineModel: support local mutation when only prop but no listener is passed (97ce041)
  • types: fix defineModel watch type error (#9942) (4af8583), closes #9939

Features

  • compiler-sfc: support passing template parsing options when parsing sfc (6fab855) (necessary to fix https://github.com/vitejs/vite-plugin-vue/issues/322)

Read this blog post for an overview of the release highlights.

Potential Actions Needed

  1. To fully leverage new features in 3.4, it is recommended to also update the following dependencies when upgrading to 3.4:

    • Volar / vue-tsc@^1.8.27 (required)
    • @vitejs/plugin-vue@^5.0.0 (if using Vite)
    • nuxt@^3.9.0 (if using Nuxt)
    • vue-loader@^17.4.0 (if using webpack or vue-cli)
  2. If using TSX with Vue, check actions needed in Removed: Global JSX Namespace.

  3. Make sure you are no longer using any deprecated features (if you are, you should have warnings in the console telling you so). They may have been removed in 3.4.

Features

Performance Improvements

  • compiler-sfc: avoid sfc source map unnecessary serialization and parsing (f15d2f6)
  • compiler-sfc: remove magic-string trim on script (e8e3ec6)
  • compiler-sfc: use faster source map addMapping (50cde7c)
  • compiler-core: optimize away isBuiltInType (66c0ed0)
  • compiler-core: optimize position cloning (2073236)
  • codegen: optimize line / column calculation during codegen (3be53d9)
  • codegen: optimize source map generation (c11002f)
  • shared: optimize makeMap (ae6fba9)

BREAKING CHANGES

Global JSX Registration Removed

Starting in 3.4, Vue no longer registers the global JSX namespace by default. This is necessary to avoid global namespace collision with React so that TSX of both libs can co-exist in the same project. This should not affect SFC-only users with latest version of Volar.

If you are using TSX, there are two options:

  1. Explicitly set jsxImportSource to 'vue' in tsconfig.json before upgrading to 3.4. You can also opt-in per file by adding a /* @jsxImportSource vue */ comment at the top of the file.

  2. If you have code that depends on the presence of the global JSX namespace, e.g. usage of types like JSX.Element etc., you can retain the exact pre-3.4 global behavior by explicitly referencing vue/jsx, which registers the global JSX namespace.

Note that this is a type-only breaking change in a minor release, which adheres to our release policy.

Deprecated Features Removed
  • Reactivity Transform was marked deprecated in 3.3 and is now removed in 3.4. This change does not require a major due to the feature being experimental. Users who wish to continue using the feature can do so via the Vue Macros plugin.
  • app.config.unwrapInjectedRef has been removed. It was deprecated and enabled by default in 3.3. In 3.4 it is no longer possible to disable this behavior.
  • @vnodeXXX event listeners in templates are now a compiler error instead of a deprecation warning. Use @vue:XXX listeners instead.
  • v-is directive has been removed. It was deprecated in 3.3. Use the is attribute with vue: prefix instead.

Readme

Source

@vue/runtime-dom

import { h, createApp } from '@vue/runtime-dom'

const RootComponent = {
  render() {
    return h('div', 'hello world')
  }
}

createApp(RootComponent).mount('#app')

Keywords

FAQs

Last updated on 29 Dec 2023

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc