Constructor
new RouteParams(paramsopt, queryopt)
Create a new RouteParams instance
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
params | object | <optional> | {} | Route parameters (e.g., from :param patterns) |
query | object | <optional> | {} | Query string parameters (e.g., from ?key=value) |
- Source
Example
// Route: /users/:userId/posts/:postId
// URL: /users/123/posts/456?sort=date&order=desc
class UserPostState extends State {
static ROUTE = '/users/:userId/posts/:postId';
async onEnter() {
const userId = this.getParam('userId'); // '123'
const postId = this.getParam('postId'); // '456'
const sort = this.getQuery('sort'); // 'date'
const order = this.getQuery('order'); // 'desc'
const limit = this.getQuery('limit', 10); // 10 (default)
// Get all params/queries at once
const allParams = this.getParams(); // { userId: '123', postId: '456' }
const allQueries = this.getQueries(); // { sort: 'date', order: 'desc' }
}
}Methods
getParam(key, defaultValueopt) → {*}
Get a single route parameter value by key
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
key | string | Parameter name (from route pattern) | ||
defaultValue | * | <optional> | null | Value to return if parameter doesn't exist |
- Source
Returns:
Parameter value or defaultValue
- Type:
- *
Examples
// Route: /users/:userId
// URL: /users/123
const userId = this.getParam('userId'); // '123'
const missing = this.getParam('foo', 'bar'); // 'bar'// Wildcard routes
// Route: /files/*
// URL: /files/documents/report.pdf
const path = this.getParam('_'); // 'documents/report.pdf'getParams() → {Object}
Get all route parameters as an object
- Source
Returns:
Object containing all route parameters
- Type:
- Object
Example
// Route: /users/:userId/posts/:postId
// URL: /users/123/posts/456
const params = this.getParams();
// Returns: { userId: '123', postId: '456' }getQueries() → {Object}
Get all query string parameters as an object
- Source
Returns:
Object containing all query parameters
- Type:
- Object
Examples
// URL: /search?q=javascript&category=tutorials&page=2
const queries = this.getQueries();
// Returns: { q: 'javascript', category: 'tutorials', page: '2' }// Check if any filters applied
const filters = this.getQueries();
if (Object.keys(filters).length > 0) {
console.log('Filters active:', filters);
}getQuery(key, defaultValueopt) → {*}
Get a single query string parameter value by key
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
key | string | Query parameter name | ||
defaultValue | * | <optional> | null | Value to return if query parameter doesn't exist |
- Source
Returns:
Query parameter value or defaultValue
- Type:
- *
Examples
// URL: /search?q=javascript&category=tutorials&page=2
const searchTerm = this.getQuery('q'); // 'javascript'
const category = this.getQuery('category'); // 'tutorials'
const page = this.getQuery('page'); // '2'
const limit = this.getQuery('limit', 10); // 10 (default)// Type conversion
const pageNum = parseInt(this.getQuery('page', '1')); // 2 (as number)
const isActive = this.getQuery('active') === 'true'; // boolean conversion