FlowRouter Extra
Carefully extended flow-router
package. FlowRouter is a very simple router for Meteor. It does routing for client-side apps and compatible with React, Vue, Svelte, and Blaze.
It exposes a great API for changing the URL and getting data from the URL. However, inside the router, it's not reactive. Most importantly, FlowRouter is designed with performance in mind and it focuses on what it does best: routing.
Features:
- 📦 Not dependent on Blaze, ready for React.js and other templating/components engines/libs;
- 📦 No
underscore
package dependency; - 👨🔬 Great tests coverage;
- 🥑 Up-to-date dependencies;
- 📦 Support of Fast Render and other great packages;
- 📋 Following semver with regular releases;
- 📋 Great wiki;
- 📋 Great quick start tutorial.
Install
meteor add ostrio:flow-router-extra
ES6 Import
1import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; 2// Full list of available classes and instances: 3// { FlowRouter, Router, Route, Group, Triggers, BlazeRenderer, RouterHelpers }
Usage
1import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; 2 3// DISABLE QUERY STRING COMPATIBILITY 4// WITH OLDER FlowRouter AND Meteor RELEASES 5FlowRouter.decodeQueryParamsOnce = true; 6 7FlowRouter.route('/', { 8 name: 'index', 9 action() { 10 // Render a template using Blaze 11 this.render('templateName'); 12 13 // Can be used with BlazeLayout, 14 // and ReactLayout for React-based apps 15 } 16}); 17 18// Create 404 route (catch-all) 19FlowRouter.route('*', { 20 action() { 21 // Show 404 error page using Blaze 22 this.render('notFound'); 23 24 // Can be used with BlazeLayout, 25 // and ReactLayout for React-based apps 26 } 27});
Documentation
- Continue with our wiki;
- Quick start tutorial;
- All docs as single document.
Related packages:
ostrio:flow-router-title
- Reactive page title (document.title
)ostrio:flow-router-meta
- Per routemeta
tags,script
andlink
(CSS), set per-route stylesheets and scriptscommunitypackages:fast-render
- Fast Render can improve the initial load time of your app, giving you 2-10 times faster initial page loads.fast-render
integration tutorialcommunitypackages:inject-data
- This is the package used byfast-render
to push data to the client with the initial HTMLflean:flow-router-autoscroll
- Autoscroll for Flow Routermealsunite:flow-routing-extra
- Add-on for User Accountsnxcong:flow-routing
- Add-on for User Accounts (alternative)forwarder:autoform-wizard-flow-router-extra
- Flow Router bindings for AutoForm Wizardnicolaslopezj:router-layer
- Helps package authors to support multiple routerskrishaamer:flow-router-breadcrumb
- Easy way to add a breadcrumb with enough flexibility to your project (flow-router-extra
edition)krishaamer:body-class
- Easily scope CSS by automatically adding the current template and layout names as classes on the body element
Running Tests
- Clone this package
- In Terminal (Console) go to directory where package is cloned
- Then run:
Meteor/Tinytest
# Default meteor test-packages ./ # With custom port meteor test-packages ./ --port 8888 # With local MongoDB and custom port MONGO_URL="mongodb://127.0.0.1:27017/flow-router-tests" meteor test-packages ./ --port 8888
Support this project:
- Sponsor via GitHub
- Support via PayPal — support my open source contributions once or on regular basis
- Use ostr.io — Monitoring, Analytics, WebSec, Web-CRON and Pre-rendering for a website