`v-once` 是 Vue 自带的**「一次性插值」**指令,核心作用只有一句话:

> **渲染一次,永不再变。**

### 用法
```html
<span v-once>{{ msg }}</span>
```

- 组件首次渲染时,把 `msg` 的值写进 DOM;  
- 此后即使 `msg` 发生变化,**视图不会重新更新**;  
- 对应的虚拟节点也会被标记为 **静态(static)**,跳过后续 diff,**性能最优**。

### 典型场景
1. 纯展示型内容(如协议文本、静态表格、报表标题)。  
2. 大规模列表中只读字段,可显著减少渲染开销。  
3. 与 `<keep-alive>`、SSR 同构搭配,避免客户端再次渲染。

### 注意事项
- 只是**跳过更新**,并不会销毁数据;数据变动依旧会触发依赖,只是 DOM 不动。  
- 不要把它当成“性能银弹”,滥用会导致界面“假死”——用户看到旧数据。  
- 在 Vue3 的 Composition API 里用法相同,依旧写模板指令即可。

一句话记住:  
**`v-once` = “拍快照”**:第一次长什么样,以后就永远什么样。

更多推荐