我正在写一个小路由器,只是路由像/user/info
这样的路径而没有任何特殊的正则表达式或字符串中的变量。我目前的实现看起来像
let routes = {
user: {
path: "/user",
routes: {
info: {
path: "/user/info",
routes: {}
}
}
}
};
然后它基本上将自己视为链表,并按对象名称查找对象,如routes["user"]["info"]
;有一些更快的方法来做我不知道的路由吗?我找不到任何东西。
在给定的代码中,routes["user"]["info"]
未定义。
建议:您可以为查找创建map
。
首先寻找“用户”,然后寻找其路线“信息”。
我想没有人真正理解我的问题。无论如何,似乎在JS中找到“东西”的最快方法,即/user/add
这样的路线,是
以上5种方法都具有相同的速度。地图与原始字符串的switch语句一样快的事实是惊人的。众所周知,使用对象反射是无法忍受的缓慢。万岁,谁创造了地图!使用具有对象反射的数字真的非常非常慢,这也是令人惊讶的。也许是因为每个数字都必须转换为字符串键?不确定。
无论如何,使用地图!
这是我的js perf