v-once Render Once

Last updated: 2026-10-22

v-once Render Once

v-once renders the element only once; later changes to its data do not re-render it — a micro-optimisation for static content.

GroupDirectives
KindDirective
ScopeTemplate
Vue Version3.0+
SSR SupportYes

📝 Syntax

<p v-once>Initial: {{ msg }}</p>

⚙️ Arguments

expressionNo expression

Returns:Directive, no return value

▶ Example

Edit the code below and see the live result:

Output:

After clicking, the live paragraph updates while the frozen one keeps the initial text.

💡 Key Points

ℹ️ Note Ideal for version numbers, copyright lines and other never-changing content.
⚠️ Warning Later data changes never reach a v-once node — misuse on dynamic content causes stale output.
💡 Tip v-once covers the entire subtree of the element.
More case studies coming soon.

📚 Related Tutorials

❓ FAQ

Q What content suits v-once?
A Static text that never changes after mount, such as copyright or version lines.
Q Why does the page not update when data changes?
A By design that subtree leaves the render pipeline — misuse shows stale data.
Q Can it combine with v-for?
A It can, but for dynamic lists v-memo is the right tool.
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%

🙏 帮我们做得更好

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

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