defineCustomElement() Define a Custom Element

Last updated: 2026-10-22

defineCustomElement() Define a Custom Element

defineCustomElement() wraps a Vue component as a standards-based custom element usable in any page or framework.

GroupRender Functions & SSR
KindAPI
ScopeGlobal
Vue Version3.0+
SSR SupportYes

📝 Syntax

const MyEl = defineCustomElement({ props: { msg: String }, template: "<p>{{ msg }}</p>" })
customElements.define("my-element", MyEl)

⚙️ Arguments

optionsA component definition (styles array supported)

Returns:A custom element class for customElements.define

▶ Example

Edit the code below and see the live result:

Output:

Renders 'from a custom element'.

💡 Key Points

ℹ️ Note Great for sharing design-system components across frameworks.
💡 Tip The styles option injects CSS into the shadow root.
⚠️ Warning Props must be declared to be settable as element properties.
More case studies coming soon.

📚 Related Tutorials

❓ FAQ

Q When is it useful?
A When reusing components outside Vue or shipping web components.
Q Does styling leak?
A Shadow DOM isolates styles; otherwise they are global.
Q Usable inside Vue too?
A Possible, though plain components are simpler.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏