Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
create web-component v1 in cljs without class
(defn component []
(js/Reflect.construct js/HTMLElement #js [] component))
(set! (.-prototype component)
(js/Object.create (.-prototype js/HTMLElement)
#js {:connectedCallback
#js {:configurable true
:value
(fn []
(this-as this
(js/console.log "connected" this)))}
:disconnectedCallback
#js {:configurable true
:value
(fn []
(this-as this
(js/console.log "disconnectedCallback" this)))}
:attributeChangedCallback
#js {:configurable true
:value
(fn []
(this-as this
(js/console.log "attributeChangedCallback" this)))}
}))
(js/window.customElements.define "x-component" component)
(let [x (js/document.createElement "x-component")]
(js/document.body.appendChild x))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.