Simple routes
v-route
component
vanille
implements a very simple and straightforward routing system.
Simply import:
ts
import '@vanille/core/Route';
import '@vanille/core/Route';
This will add Route
to customElements
and you can use it as:
tsx
<v-route path="/">Home</v-route>
<v-route path="/">Home</v-route>
path
attribute
When the location
matches the given value set to path
, the slot
will be rendered.
tsx
// https://dannyyassine.github.io/vanille
<v-route path="/">
Home // not rendered
</v-route>
<v-route path="/vanille">
Dashboard // rendered
</v-route>
// https://dannyyassine.github.io/vanille
<v-route path="/">
Home // not rendered
</v-route>
<v-route path="/vanille">
Dashboard // rendered
</v-route>
startsWith
attribute
Similar to String.prototype.startsWith
, v-route
checks if the url path matches the beginning pattern set in the startsWith
attribute.
tsx
<v-route startsWith="/app"></v-route>
<v-route startsWith="/app"></v-route>
All routes beginning with /app
will be rendered:
/app/dashboard
/app/settings
/app/user/1
Very useful when configuring routes based on a mandatory login screen:
jsx
<v-route path="/login">
Login
</v-route>
<v-route starsWith="/app">
<nav></nav>
<v-route path="/app/dashboard">
Dashboard
</v-route>
<v-route path="/app/settings">
Dashboard
</v-route>
</v-route>
<v-route path="/login">
Login
</v-route>
<v-route starsWith="/app">
<nav></nav>
<v-route path="/app/dashboard">
Dashboard
</v-route>
<v-route path="/app/settings">
Dashboard
</v-route>
</v-route>
Params in the url
vanille
offers very simple matching logic to render routes with params like :id
:
tsx
<v-route path="/users/:id">User with id</v-route>
<v-route path="/users/:id">User with id</v-route>