# What changed in @tiptap/vue-3

> 10 changes in @tiptap/vue-3 2 to 3 from its official release notes, upgrade guides and advisories: 2 breaking. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/npm/@tiptap/vue-3/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @tiptap/vue-3 3

### Performance

- Scroll-time CPU usage is reduced by deferring viewport recomputation to rAF, adding an overscan margin, and throttling scroll updates. (3.24.0) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3240)
- Placeholder decoration scanning now uses a cursor-resolved fast path for the default config and viewport-limited scanning for the non-default config, reducing overhead on large documents. (3.23.6) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3236)

### Behavior and default changes

- The Placeholder extension now allows emptyNodeClass to be a function that returns a dynamic CSS class name per node. (3.25.0) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3250)

### Fixes and other changes

- Placeholder flickering and disappearance on large documents are fixed by incrementally recomputing decorations for top-level nodes touched by each transaction. (3.27.3) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3273)
- Placeholders stay stable when the editor cannot be measured reliably, preventing flickering while a modal overlay is open during transactions. (3.27.1) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3271)
- Placeholder flickering during collaborative editing is fixed. (3.24.0) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3240)
- Fixes peer dependency resolution conflicts when installing dependencies after package updates. (3.22.4) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3224)
- When includeChildren is enabled, placeholder decorations are skipped on non-textblock nodes, preventing duplicate placeholders on wrapper nodes like lists. (3.20.3) — [release notes](https://github.com/ueberdosis/tiptap/blob/db790a7c5a6009b0a94382e12e1a5e9c642e1660/CHANGELOG.md#v3203)

## @tiptap/vue-3 2

### Breaking changes

- The placeholder extension no longer supports the considerAnyAsEmpty option. (2.0.0) — [upgrade guide](https://tiptap.dev/docs/guides/upgrade-tiptap-v2)
- Placeholder is included in the new @tiptap/extensions package; update imports to use the combined package. (2.0.0) — [upgrade guide](https://tiptap.dev/docs/guides/upgrade-tiptap-v2)
