Die RouT-Bibliothek ist eine Implementierung von Funktionen im Zusammenhang mit dem Router, die sowohl für Server als auch für den Client verwendet werden können. Es folgt die gleichen Routing -Regeln wie ausdrücklich mit derselben Bibliothek. Diese Bibliothek verwendet keine Rückrufe für Routen. Stattdessen greift sie nur auf Zeichenfolgennamen ab, die als Anwendungsstatus verwendet und später in Ihrer Anwendung verwendet werden können. Zum Beispiel im Fluss würde die derzeitige Route in einem Geschäft als Staat gehalten.
Ausführlichere Beispiele finden Sie in Beispielanwendungen.
import Router from 'routr' ;
const router = new Router ( [
{
name : 'view_user' ,
path : '/user/:id' ,
method : 'get' ,
foo : {
bar : 'baz' ,
} ,
} ,
{
name : 'view_user_post' ,
path : '/user/:id/post/:post' ,
method : 'get' ,
} ,
] ) ;
// match route
const route = router . getRoute ( '/user/garfield?foo=bar' ) ;
if ( route ) {
// this will output:
// - "view_user" for route.name
// - "/user/garfield" for route.url
// - {id: "garfield"} for route.params
// - {path: "/user/:id", method: "get", foo: { bar: "baz"}} for route.config
// - { foo: 'bar' } for route.query
console . log ( '[Route found]:' , route ) ;
}
// generate path name (does not include query string) from route
// "path" will be "/user/garfield/post/favoriteFood?meal=breakfast"
const path = router . makePath (
'view_user_post' ,
{ id : 'garfield' , post : 'favoriteFood' } ,
{ meal : 'breakfast' } ,
) ; Wir verwenden Object.freeze , um den Router und die Objekte für Nichtproduktionsumgebungen zu frieren, um die Unveränderlichkeit dieser Objekte sicherzustellen.
Für Produktionsumgebungen wird empfohlen, Tools wie Envify zusammen mit Uglify als Teil Ihres Build -Prozesses zu verwenden, um den produktionsspezifischen Code für Leistungsvorteile auszuziehen.
Wir verwenden Object.freeze() if (process.env.NODE_ENV !== 'production')
Zwei Haupt -Utility -Plugins:
process.env zu definieren.EnVBeispiel für die Webpack -Konfiguration:
plugins: [
new webpack . DefinePlugin ( {
'process.env' : {
NODE_ENV : JSON . stringify ( 'production' )
}
} ) ,
new webpack . optimize . UglifyJsPlugin ( ) ,
...
]Ähnlich wie bei WebPack können Sie auch die folgenden zwei Utils mit Ihrem Lieblings -Build -System verwenden:
process.env.NODE_ENV in die gewünschte Umgebung festzulegenBefehlszeilenbeispiel:
$ browserify index.js -t [ envify --NODE_ENV production ] | uglifyjs -c > bundle.jsDiese Software kann unter dem Yahoo! Inc. BSD -Lizenz. In der Lizenzdatei für Lizenztext und Copyright -Informationen finden Sie.
Der verwendete Open-Source-Code von Drittelementen ist in unserer Datei package.json aufgeführt.