itorr / q.js

炒鸡轻量的前端单页路由框架

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2个问题

blqw opened this issue · comments

  1. 关于路由的base怎么设置 文档中似乎没有做出说明
  2. 希望可以支持路由加参数的支持, 比如 #!/aaa/ppp?id=1
  1. base 如果是指默认地址的话
Q.init({
	index:'home' // 这里可以替换默认路由地址
});

我知道了 这个路径只是用来触发事件的 我以为包含了加载页面的功能

对的 这个小封装仅仅包含了路由。

参数我感觉可以支持下w

还有个小需求 我希望在你的这个基础上增加 一个插件 用于支持加载页面
我初步的设想 是修改方式如下

  1. https://github.com/itorr/q.js/blob/master/q.js#L35
    这里如果没找到函数不报错
  2. 增加多个key和pop绑定的设置
    比如默认的!可以对应pop["!"]函数, 我可以注册一个key叫:,并注册pop[":"]事件
    然后在pop[":"]事件中处理页面加载逻辑
    例如 #:/aaa/bbb 使得我可以载入aaa/bbb页面

下午我会提交一个pull试试

  1. https://github.com/itorr/q.js/blob/master/q.js#L25 在这里有对 view 进行判断,如果没有回调会跳转到 index
  2. 这个不太明白,是指 通过 间隔符把路由事件分流到两个路由中转上么?
  1. index 都没有就会挂掉
  2. 好吧 其实第二个问题不大 我觉得使用正则也可以轻松的完成
  1. 🤣 index 本身是有默认值 'V'的,除非是故意设定不存在的路由
  2. 第二个情况比较少见,满足一面的路由绑定之时、另一半这时 URL 和 view 就无法保持统一,出现这种情况可能是原型设计出了问题?

index设置了 index 但是没有reg "index"函数

正则不匹配首页

Q.reg(/^\:.*/, function () {
    
});

Q.init({
    index: ':login'/* 首页地址 */
});

这不就是我说的 故意设定不存在的路由 的情况嘛,这种情况在轮子里做容错没有意义,不如将错误直接抛出

没有故意输入, 我的意思就就是要正则匹配
没有路由按照 index 匹配

<div id="m"></div>
<script src="../q.js"></script>
<script>
Q.reg(/.+?/,function(){
	document.getElementById('m').innerHTML='打开了home页';
});

Q.init({
	index:/.+?/ /* 首页地址 */
});
</script>

没毛病的,首页地址可以用正则

不不不 你没有理解我的意思
首页默认地址是 abc
正则判断 a 开头的 进入正则处理

<div id="m"></div>
<script src="../q.js"></script>
<script>
Q.reg(/^a/,function(){
       if(Q.lash === "abc"){
	document.getElementById('m').innerHTML='打开了home页';
    }
    //这里处理其他逻辑
});

Q.init({
	index:"abc" /* 首页地址 */
});
</script>

有点蒙,默认地址和 hash 地址的匹配不同,你可以理解必须是 == 而不是按照 / 分割 或者 正则匹配。

唔,我大致理解了你的需求点

比如 作为博客,我可能想将某个文章作为默认首页 之类么?