第二十四节 DTCloud 4Router Service

路由服务

技术名称:路由器

依赖项:无

路由器服务提供三个功能:

有关当前路线的信息

应用程序根据其状态更新url的方法

侦听每个哈希更改,并通知应用程序的其余部分

API

current

可以使用当前密钥访问当前路由。它是一个具有以下信息的对象:

pathname(字符串):当前位置的路径(/web)

search(object):一个字典,将每个搜索关键字(querystring)从url映射到其值。如果没有明确给定值,则为空字符串

hash(object):与上面相同,但适用于hash中描述的值。

实例:

// url = /web?debug=assets#action=123&owl&menu_id=174
const { pathname, search, hash } = env.services.router.current;
console.log(pathname); //   /web
console.log(search); //   { debug="assets" }
console.log(hash); //   { action:123, owl: "", menu_id: 174 }

使用pushState方法更新URL:

pushState(hash: object[, replace?: boolean])

参数
        hash(Object())–包含从某些键到某些值的映射的对象

        replace(boolean())–如果为true,则url将被替换,否则将只更新哈希中的键/值对。

使用哈希对象中的每个键/值对更新URL。如果一个值被设置为空字符串,则该键将被添加到url中,而没有任何相应的值。

如果为true,replace参数告诉路由器应该完全替换url散列(因此散列对象中不存在的值将被删除)。

此方法调用不会重新加载页面。它也不会触发hashchange事件,也不会在主总线中触发ROUTE_CHANGE。这是因为此方法仅用于更新url。调用此方法的代码有责任确保屏幕也得到更新。

实例:

// url = /web#action_id=123
routerService.pushState({ menu_id: 321 });
// url is now /web#action_id=123&menu_id=321
routerService.pushState({ yipyip: "" }, replace: true);
// url is now /web#yipyip

最后,重定向方法将浏览器重定向到指定的url:

redirect(url[, wait])

参数
        url(string())–有效的url

        wait(boolean())–如果为true,请等待服务器准备就绪,然后重定向

将浏览器重定向到url。此方法将重新加载页面。wait参数很少使用:它在某些情况下很有用,因为我们知道服务器将在短时间内不可用,通常是在插件更新或安装操作之后。

注意:

只要当前路由发生更改,路由器服务就会在主总线上发出ROUTE_CHANGE事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DTCloud4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值