RouteParams

RouteParams Container class for route parameters and query string values. Instances are passed to State lifecycle methods when a route is matched.

Constructor

new RouteParams(paramsopt, queryopt)

Create a new RouteParams instance

Parameters:
NameTypeAttributesDefaultDescription
paramsobject<optional>
{}

Route parameters (e.g., from :param patterns)

queryobject<optional>
{}

Query string parameters (e.g., from ?key=value)

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:
NameTypeAttributesDefaultDescription
keystring

Parameter name (from route pattern)

defaultValue*<optional>
null

Value to return if parameter doesn't exist

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

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

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:
NameTypeAttributesDefaultDescription
keystring

Query parameter name

defaultValue*<optional>
null

Value to return if query parameter doesn't exist

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