Skip to content
This repository was archived by the owner on Oct 19, 2022. It is now read-only.

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 22, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
vue-router 4.0.8 -> 4.1.5 age adoption passing confidence

Release Notes

vuejs/router

v4.1.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.4

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.0

Compare Source

Vue Router 4.1

We are excited to announce the release of Vue Router 4.1 with a few new interesting features, better support for Node ESM and no breaking changes.

Omitting the component/components option in routes

It's now possible to completely omit the component option when defining routes with children. While nested routes are about defining layouts, they are also directly connected to a path and users often found themselves defining a pass through component that would just render a <RouterView> component to reuse the path structure. You can now simplify this to:

- import { RouterView } from 'vue-router'
- import { h } from 'vue'
-
 const routes = [
   {
     path: '/admin',
-     component: () => h(RouterView),
     children: [
       { path: 'users', component: AdminUserList },
       { path: 'users/:id', component: AdminUserDetails },
     ],
   },
 ]

In other words, you can now nest paths without having to define a component.

Passing History State in navigations

Passing History State through router.push() has been implemented and used by the router since its version 4.0 but hasn't been exposed as a public API until now. This enables passing a state property when calling router.push() or router.replace(). This is useful to pass global state to be associated with the history entry that cannot be shared by copying the URL. One common example of this are Modals:

// go to /users/24 but show a modal instead
router.push({ name: 'UserDetail', params: { id: 24 } state: { backgroundView: ... } })

To see a full example, check the modal e2e test, it has been updated to use the state property.

It's worth noting this shouldn't be used to pass fetched data or complex objects such as classes because of type and size limitations. Check the History State documentation for more information about the state property.

Given the nature of the <RouterView>'s route prop, there is also a new function loadRouteLocation() that can be used on a resolved route location to load a route with lazy loading:

import { loadRouteLocation } from 'vue-router'

const loadedRoute = await loadRouteLocation(router.resolve('/users/24'))

Typed Routes

RouterLink to autocomplete

In v4.1 we were initially planning to introduce types to automatically detect the params from a path property, creating autocomplete and type safety in router.push() and <RouterLink>'s to prop. It was implemented but also turned out to be extremely slow after ~50 routes due to the nature of the types relying on nesting and complex unions. Instead, we are introducing a build plugin to generate the types of the routes for you based your file structure. This is similar to Nuxt and Vite Plugin Pages but with full type support (similar to nuxt-typed-router) while allowing you to keep using the exact same API, just with Autocompletion and typing hints 😄. The plugin currently supports Vite, Webpack (with some caveats), and rollup and it's currently experimental to gather feedback from the community and build a flexible solution. We hope to release a stable version in the following months.

Check out the plugin GitHub repository for installation instructions and documentation.

Here are some other examples of how much this plugin can improves your developer experience:

params validation in RouterLink Route infer from if condition Typed routes in navigation guards

CJS/MJS support for Node

We now expose a few extra entry points for Node but kept the old ones as well to prevent any disruption to the existing users. You can find more information about this in the corresponding pull request.


Please refer to CHANGELOG.md for details.

v4.0.16

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.15

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.14

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.13

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.12

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.11

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.10

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.9

Compare Source

Please refer to CHANGELOG.md for details.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Mend Renovate. View repository job log here.

@renovate
Copy link
Contributor Author

renovate bot commented Sep 22, 2022

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: frontend/package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: code@0.1.0
npm ERR! Found: vue@3.1.1
npm ERR! node_modules/vue
npm ERR!   vue@"3.1.1" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer vue@"^3.2.0" from vue-router@4.1.5
npm ERR! node_modules/vue-router
npm ERR!   vue-router@"4.1.5" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /tmp/renovate-cache/others/npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/renovate-cache/others/npm/_logs/2022-09-30T14_52_33_615Z-debug-0.log

@renovate renovate bot force-pushed the renovate/vue-router-4.x branch from 0ce25d0 to 81496c9 Compare September 30, 2022 14:52
@ju-c ju-c closed this Sep 30, 2022
@ju-c ju-c deleted the renovate/vue-router-4.x branch September 30, 2022 14:54
@renovate
Copy link
Contributor Author

renovate bot commented Sep 30, 2022

Renovate Ignore Notification

As this PR has been closed unmerged, Renovate will now ignore this update (4.1.5). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.

If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants