Vue3

by filimondanopoulosstratsys

HTML

<script src="https://unpkg.com/vue@3.5.25/dist/vue.global.prod.js"></script>
<div id="app"></div>

JavaScript

const { createApp, h } = Vue

customElements.define('my-element', class extends HTMLElement {
  #value = 2
  get value() {
    return this.#value
  }
  set value(value) {
    this.#value = value
    this.innerHTML = JSON.stringify(value)
  }
})

const app = createApp({
  render() {
    return [
      h('my-element', { value: null })
    ]
  }
})

app.mount('#app')