Skip to content

vue-web-component-wrapper ​

Introduction ​

vue-web-component-wrapper is a powerful Vue 3 plugin designed for transforming full-fledged Vue applications into reusable web components (custom elements). These web components can be integrated into any website, enhancing flexibility and reusability.

Why use vue-web-component-wrapper? ​

As of now, Vue 3 does not support the creation of full applications as web components out of the box. This plugin aims to solve this problem by providing a simple and easy-to-use solution for creating web components from Vue applications. It also provides support for Vue ecosystem plugins such as Vuex, Vue Router, and Vue I18n.

Demo ​

Check out these demo projects to see vue-web-component-wrapper in action:

Key Features ​

  • Vue Plugins Compatibility: Seamlessly integrates with key Vue ecosystem plugins.
  • CSS Framework Support: Compatible with major CSS frameworks like Tailwind CSS and Bootstrap.
  • CSS Preprocessor Support: Supports CSS preprocessors including SCSS and LESS.
  • Scoped CSS: Enables the use of scoped CSS in your components.
  • Shadow DOM Support: Facilitates the encapsulation of styles and scripts, preventing clashes with the rest of your application.
  • VUE Devtool Support: Fully supports the Vue DevTools browser extension.
  • Slot and Named Slot Support: Allows for the definition and use of slots and named slots within web components.
  • Enhanced v-model Support: Improved support for two-way data binding using the v-model architecture.
  • Event Emitting Capability: Enables the emission and handling of custom events from web components.
  • Disable Style Removal on Unmount: Option to control the removal of styles upon component unmount, addressing issues with CSS transition.
  • Disable Shadow DOM: Option to disable the Shadow DOM, rendering content in the light DOM.
  • Replace :root with :host: New feature to replace :root selectors with :host in your CSS, ensuring proper style scoping within the Shadow DOM.

New Feature Highlight: Replace :root with :host ​

Our latest feature allows you to automatically replace :root selectors with :host in your CSS styles. This is particularly useful when working with CSS frameworks or custom styles that define variables or styles on the :root selector. By replacing :root with :host, these styles are correctly scoped within your web component's Shadow DOM.

Tips ​

  • Testing Production Build: The easiest way to test your production build is to run a local server in the dist folder. You can use valet for this, but any local server should work.