routr
v3.0.1
Routr Library는 서버와 클라이언트 모두에 사용할 수있는 라우터 관련 기능을 구현 한 것입니다. 동일한 라이브러리를 사용하여 Express와 동일한 라우팅 규칙을 따릅니다. 이 라이브러리는 경로에 콜백을 사용하지 않고 대신 응용 프로그램 상태로 사용할 수 있고 나중에 응용 프로그램 내에서 사용될 수있는 문자열 이름에 매핑합니다. 예를 들어 플럭스에서는 현재 경로가 상점에서 상태로 유지됩니다.
자세한 내용은 예제 신청서를 확인하십시오.
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' } ,
) ; 우리는 Object.freeze 사용하여 비 생산 환경의 라우터 및 라우팅 객체를 동결하여 이러한 물체의 불변성을 보장합니다.
생산 환경의 경우 빌드 프로세스의 일환으로 Uglify와 같은 도구를 사용하여 성능 이점을 위해 생산 특정 코드를 제거하는 것이 좋습니다.
우리는 if (process.env.NODE_ENV !== 'production') 사용하여 Object.freeze() 주위를 감싸서 다양한 도구를 사용하여 다양한 환경에 대한 코드를 구축 할 수 있습니다.
두 가지 주요 유틸리티 플러그인 :
process.env 의 값을 정의하십시오웹 팩 구성의 예 :
plugins: [
new webpack . DefinePlugin ( {
'process.env' : {
NODE_ENV : JSON . stringify ( 'production' )
}
} ) ,
new webpack . optimize . UglifyJsPlugin ( ) ,
...
]Webpack과 유사하게 좋아하는 빌드 시스템과 함께 다음 두 유틸리티를 사용할 수도 있습니다.
process.env.NODE_ENV 설정하여 원하는 환경으로 설정하십시오명령 줄 예 :
$ browserify index.js -t [ envify --NODE_ENV production ] | uglifyjs -c > bundle.js이 소프트웨어는 Yahoo!에서 무료로 사용할 수 있습니다. BSD 라이센스. 라이센스 텍스트 및 저작권 정보는 라이센스 파일을 참조하십시오.
사용 된 제 3 자 오픈 소스 코드는 package.json 파일에 나열되어 있습니다.