npm / @ionic/vue
@ionic/vue
What changed in @ionic/vue 8 to 9, from its official release notes, upgrade guides and advisories. Also covers @ionic/angular, @ionic/react, @ionic/react-router, @ionic/vue-router. Sources checked 2026-10-18.
3 breaking1 security15 new APIs and options5 behavior and defaults86 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@ionic/vue 919 changes
Breaking changes 3
Back navigation is allowed when nothing is open.
Global stylesheets no longer emit :host-context selectors.
Commits the selected value when the user presses outside the picker column.
Security 1
Sanitization matches onload case- and space-insensitively.
Behavior and default changes 1
Derives option text from all child nodes.
Fixes and other changes 14
Lifecycle events now fire on nested pages.
The route snapshot is updated when navigating with query parameters.
The component synchronizes its value when its length changes.
ARIA attributes are synchronized between the host and native button.
The ready state is torn down only when the host is hidden.
Positioning and sizing account for CSS zoom.
Prevents ion-content from collapsing when the modal uses content-based heights.
Clicking slotted content emits one click event.
Change detection is restored for routed pages.
Reads props after frameworks assign them, so the component uses the assigned values.
Validates the slot after frameworks assign it.
Reads props after frameworks assign them, so the component uses the assigned values.
Restores presented state after a DOM move.
Prop defaults are restored when consumers downlevel, preserving expected component behavior.
@ionic/vue 891 changes
New APIs and options 15
Adds the content part to toast for styling.
Export RefresherPullEnd types from the Angular package.
Modal and popover controllers support custom injectors.
Header parts are added to ion-datetime.
Inner and container parts are added to ion-item.
Inner and container parts are added to ion-item-divider.
Inner and container parts are added to ion-item-option.
An inner part is added to ion-list-header.
Drag events are added for sheet and card modals.
A wheel part is added to ion-picker-column.
Classes and parts are exposed to allow individual styling of dual knobs.
Wrapper and bottom shadow parts are added to ion-select.
The ionPullEnd event is added to refresher.
The ionPullStart event is added to refresher.
The swipeGesture property is added to segment-view to disable swiping.
Behavior and default changes 4
The cancelText property is passed to the modal interface.
The content-fullscreen class is added when fullscreen is true.
Classes are added to ion-range when its value is at the minimum or maximum.
The disabled and readonly properties are reflected by ion-textarea.
Fixes and other changes 72
Range knob positions update when dualKnobs changes.
Menu animation side now respects the ion-app dir attribute.
Removes the leaked optsTest listener from the passive support check.
The ready state is torn down when an overlay dismisses.
Lazy component chunks now resolve under Vite 8.
Pull-to-refresh now works with a custom scroll host in a modal.
Offsets are updated when safe-area insets arrive late.
Restores the missing keyboard focus indicator for checkboxes.
Restores form submit, reset, and disabled functionality for fab buttons.
Restores the missing keyboard focus indicator for radio buttons.
Retries lazy loading after an attach fails.
Restores the missing keyboard focus indicator for toggles.
Focus stays on the dialog for cycle sheet modals.
Transitions are guarded against a destroyed router outlet.
The floating label and placeholder no longer overlap when focused.
Focus the dialog wrapper when presenting a modal so screen readers can enter it.
When the SSR DOM lacks attachShadow, fall back to scoped+annotations.
Tab change events now fire when a tab is clicked.
The hidden button now synchronizes its disabled state and type, keeping its behavior aligned with the visible button.
Paging the month calendar now respects the config animated setting.
Initial text now respects datetime constraints.
Month and year wheels no longer set active parts when multiple is true.
Change detection now runs on attached overlay views.
Modifier-clicks on routerLink are now honored.
Fixes the search icon sometimes being offset incorrectly.
Prevents a crash when sheet gestures are used with late-bound breakpoints.
The router now supports anchor fragments in href.
Tab buttons preserve query params and fragments from their href.
Alerts switch to a vertical layout when two buttons wrap.
Scroll assist no longer fires duplicate click events.
Restores the action-sheet-selected class on non-radio buttons.
Prevents the hidden-state observer from removing the ready class on initial entry.
Fixes segment dragging so it does not check a disabled segment button.
Fullscreen modals no longer show a safe-area gap or flash.
Pressing Enter selects the focused option in popover and modal interfaces.
Checkbox labels are shown after page navigation.
Fixes multiple month selected and flakiness display.
Updates the dark palette focused background color.
Fixes scrolling for adjacent days on iOS.
Prevents deletion and paste when the component is disabled or readonly.
Days keep focus after the month changes.
Re-evaluates label visibility when the checkbox label is updated.
Forwards the generic type parameter on ModalOptions, allowing its generic type to be used by developers.
Forwards the generic type parameter on PopoverOptions, allowing its generic type to be used by developers.
The accordion's tabindex now updates based on its disabled state.
Adds the wrapper part to toast for styling.
In iOS datetime, ion-buttons stretch to fill available space.
Modals now respect safe area insets.
Popovers now respect safe area insets.
Filtering radios no longer causes DOMException and NotFoundError.
In stacked layout, the icon stays on the same line as a long message.
Navigation direction state is reset when navigation is canceled.
Prevents Android TalkBack from focusing the label separately.
Prevents the placeholder from overlapping the start slot during scroll assist.
Prevents a keyboard controller memory leak when the tab bar mounts and unmounts rapidly.
Prevents card modal animation on viewport resize when the modal is closed.
Shows the iOS condense header when the app is in MD mode.
Improves screen reader announcements.
Dismisses the top-most overlay when multiple IDs match.
Uses Capacitor safe-area CSS variables on older WebViews.
Selects the correct tab when routes have similar prefixes.
Using ModalController in Angular no longer causes the browser to hang.
Options in select and action-sheet use the radio role.
Popover content dimensions are recalculated after the header has fully loaded.
Sheet modals allow interaction with parent content through child routes.
Ensures the datetime is shown when the intersection observer fails to report visibility.
Improves screen reader announcement timing for validation errors in checkbox, toggle, and radio-group components.
Skips the initial animation for accordion groups.
Checkbox and toggle now fire ionFocus and ionBlur events.
Condensed headers now ensure there is only one banner role.
Prevents flickering during iOS page transitions.
Improves screen reader announcement timing for validation errors.