v-once 只渲染一次
最后更新:2026-10-22
v-once 只渲染一次
v-once 让元素只渲染一次:之后即使依赖数据变化也不会重新渲染,用于静态内容优化。
| 分组 | 指令 |
|---|---|
| 类型 | 指令 |
| 作用域 | 模板 |
| Vue 版本 | 3.0+ |
| SSR 支持 | 支持 |
📝 语法
<p v-once>初始值:{{ msg }}</p>
⚙️ 参数
| expression | 无表达式 |
|---|
返回值:指令,无返回值
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
点修改后“实时的值”变化,而“冻结的值”保持初始文本。
💡 要点
ℹ️ 说明 适合版本号、版权信息这类永不变化的内容,减少无谓的重渲染。
⚠️ 注意 数据后续变化不会同步到 v-once 节点,误用在动态内容上会造成显示错误。
💡 提示 v-once 对子元素整棵子树生效。
🏷️ 相关指令
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 什么内容适合用 v-once?
A 版权行、版本号这类初始化后永不变化的静态文本。
Q 数据变了为什么页面不更新?
A 这是 v-once 的设计:该子树脱离后续重渲染,误用在动态内容上会显示过期数据。
Q 能配 v-for 用吗?
A 可以,但与动态列表配用通常违背初衷,列表场景应改用 v-memo。