Skip to content

Archived – new package coming soon!

License

Notifications You must be signed in to change notification settings

mikerockett/vue-routisan

Repository files navigation

⚠️ Retired and Archived

Vue Routisan is being retired in favour of a TypeScript rewrite under a new name, which is yet to be announced. This repository is being archived as a result.

The new package will employ the same principles of Routisan, however the interface will be simpler and a lot easier to digest, even for those with minimal Vue experience. When the new package is released, it is recommended that all users of v2 and v3 move to the new package. An migration guide will be made available when this happens.

Note: The current documentation site for v3 will remain available until such time as the new package has been released. The new package will also get a brand new docs site, powered by VitePress.


Readme

Vue Routisan

Elegant, fluent route definitions for Vue Router, inspired by Laravel.

Release 3.x Made with JavaScript Gluten Free Built with ♥

Routisan 3 is currently in beta. Stable release around the corner!

npm i vue-routisan@next # or yarn add vue-routisan@next

Routisan provides you with a friendlier way to declare route definitions for Vue Router. Inspired by Laravel, it uses chained calls to build up your routes, allowing you to group and nest as deeply as you like.

Route.view('blog', 'Blog').name('blog').children(() => {
  // All Posts
  Route.view('/', 'Blog/Posts').name('posts')

  // Single Post
  Route.view('{post}', 'Blog/Post').name('single-post').children(() => {
    Route.view('edit', 'Blog/Post/Edit').name('edit')
    Route.view('stats', 'Blog/Post/Stats').name('stats')
  })
})

This produces an array of routes in the format Vue Router expects to see, and follows a behaviour somewhat similar to Laravel’s router, such as:

  • Using callbacks to iteratively collect routes
  • Correctly joining nested routes together, regardles of prefixed slashes
  • Correctly joining the names of nested routes, using a separator of your choice

Documentation

You can read the docs on the Vue Routisan 3 site.

Upgrading from v2.x

If you are upgrading a project to Routisan 3, please consult the upgrade guide.

Keep in mind that Routisan 3 is currently in beta. It is suitable for production use, but it would be wise to wait for the stable release before using it in large projects where potential breaking changes might make the upgrade path unnecessarily complex.

Changelog

Routisan’s changelog is maintained here.

License

Vue Routisan is licensed under the ISC license, which is more permissive variant of the MIT license. You can read the license here.

Contributing

If you would like to contribute code to Vue Routisan, simply open a Pull Request containing the changes you would like to see. Please provide a proper description of the changes, whether they fix a bug, enhance an existing feature, or add a new feature.

If you spot a bug and don’t know how to fix it (or just don’t have the time), simply open an issue. Please ensure the issue is descriptive, and contains a link to a reproduction of the issue. Additionally, please prefix the title with the applicable version of Routisan, such as [3.0].

Feature requests may also be submitted by opening an issue – please prefix the title with "Feature Request"