acelan86 / ESinaProject

make a project
0 stars 8 forks source link

讨论下router规则 #4

Open acelan86 opened 9 years ago

acelan86 commented 9 years ago

我现在计划的router规则是这样的

module/action/parkey:parvalue/par2key:par2value

or

module/action~parkey=parvalue&par2key=par2value&...(er)

需要讨论下:

提到路由规则,其实还有一点,因为工具会在package的时候进行文件md5的转换,加上目前根据路由自动查找相应js模块进行require,因此,如果路由规则为

a/b

那么回去加载a目录下的b.js进行初始化view 这样问题就产生了,当我进行package后,b.js变成了b.hash.js, 这时候路由规则查找的b.js不存在了

而我又觉得不能因为这个原因放弃package的时候对module的所有js进行hash化,必须想个方法解决?

目前因为gulp-rev-all会对requirejs.config中的path自动替换hash后的url,所以,多了一个router.js用来保证在package后能够自动映射到正确的x.hash.js文件 但是这样又会导致每次新建action都需要在这个router.js里面新建一条配置,感觉比较重复

feibyte commented 9 years ago

第一个规则要考虑这样的情况:

module/action/

module/param1:value1/p2:v2

我用的时候因为修改参数个数,解析到另一个router上。

我还是偏向选择下面这种,中间还是用?,大家都知道后面接参数。用这个~区分,还真有人问过我这个符号是啥意思。

module/action?parkey=parvalue&par2key=par2value&...

acelan86 commented 9 years ago

1、如果需要自动load module,那必然需要有一个特定的规则module/action,如果单有一个module的话怎么区分加载某个模块,就跟你说的那样

2、我在想,既然使用backbone,是不是可以沿用backbone的规则,不要自己创造一套规则 也就是,特定的前面两部分当作module和action,这是必须的,后面/的部分再次调用backbone的router模块进行解析?