有些州很容易映射到路线。例如:
'users/:id' --> #users/123
这里的状态只是一个简单的整数,因此很容易创建一个合理的路由并将该状态传递给路由处理程序。
但是当你的状态更复杂时应该使用什么策略(例如JSON对象,数组数组等)?
我注意到Gmail会将其状态“标记”为看似基数为64的编码令牌,例如像这样的东西:
#inbox/h223r488v8vHh4fa9a9qyUTkmb9334mN9O2s8
......然后我想象它会以某种方式将该令牌反转回有意义的状态,但这个过程让我感到困惑。
答案 0 :(得分:1)
为什么不使用base64 javascript库?那里有一吨。 Here's one。确定在编码之前需要JSON.stringify
,之后需要JSON.parse
。
如果它已经在URL中,那么你只需解码它。然后你不需要存储它,你可以解码和编码。
routes: {
'encoded/:code': 'decode'
},
decode: function(code) {
// using the linked library
var decoded = window.atob(code);
// do what you want
}
base64内置于某些浏览器中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding