如何管理及使用小程序路由(5)

什么是路由

前端的路由是对一个路径的解析,允许用户通过不同的路径访问不同的内容。当用户在页面上点击一个或跳转页面的内容时,系统会根据该内容所携带的路径地址来跳转到对应的页面并呈现给用户。小程序中所有页面的路由全部由框架进行管理,框架以的形式维护了当前的所有页面。当跳转的页面无需进行数据交互时我们就可以很好的避免没必要的后端服务器请求, 降低服务器压力。

微信小程序实战005:如何管理及使用小程序路由

什么是栈

栈(stack)是一种运算受限的线性结构存储表,栈的开口端被称为栈顶而封闭端被称为栈底。这样栈就只能从表的开口端存取数据,无论是存数据还是取数据都必须遵循"先进后出"的原则。向栈中添加元素的过程被称为"进栈",从栈中提取出元素的过程被称为"出栈"(会把该元素从栈中删除)。小程序中通过来管理所有页面,这就意味着小程序中可以跳转新页面、可以后退,但是不能前进。

微信小程序实战005:如何管理及使用小程序路由

如何获取栈中的路由

小程序提供了getCurrentPages() 函数用于获取当前页面栈的实例,结果以数组形式按栈的顺序输出,第一个元素为首页,最后一个元素为当前页面。

需要注意的是:不要尝试修改页面栈,会导致路由以及页面状态错误。也不要在onLaunch中调用 getCurrentPages(),因为此时 页面还没有生成

微信小程序实战005:如何管理及使用小程序路由

路由跳转方式

小程序为我们提供了5中路由跳转方式(每种方式都支持API调用和组件调用),他们分别为打开新页面、页面重定向、页面返回、Tab 切换、重启动。这里需要注意的是Tab 切换中的路由状态,Tab页之间切换页面并没有直接销毁而是隐藏了,而页面跳转Tab页时该页面会被销毁只显示当前Tab页。

微信小程序实战005:如何管理及使用小程序路由

路由的用法

使用组件跳转我们可以在navigator定义open-type属性来指定跳转方式,并通过url属性告诉系统将要跳转的新页面路由。

这里需要注意的是当open-type属性为navigateBack类型时无需指定url属性,系统会从栈中去提取上一个路由。

使用API跳转时navigateTo(可带参)是最常用的路由跳转,新页面会加入到栈并允许返回;redirectTo(不可带参)则会关闭当前页面并跳转到新页面,但是当前页面不会加入到栈(不允许返回);switchTab(不可带参)用于tabBar页面跳转专用,跳转时其他页面会出栈而新页面会入栈;navigateBack(不可带参)只能返回到页面栈中存在的页面,返回时页面不断出栈直到到达目标页;reLaunch(可带参)或关闭所有页面(包括tabBar页面),然后再打开一个新页面。

微信小程序实战005:如何管理及使用小程序路由

路由传参

使用组件跳转时可以在url属性中附带上参数即可,使用API跳转时我们可以在标签组件中传入data-*自定义属性,当该组件触发事件时会将该属性值发送给事件处理函数。函数拿到该属性值之后就可以根据你发送的请求类型来发送对应的数据格式给后端,如果是GET请求可以将参数拼接在URL上发送给后端,如果是POST请求可以将参数转成JSON对象发送给后端。

微信小程序实战005:如何管理及使用小程序路由

总结:

以上内容是小编给大家分享的微信小程序实战005:如何管理路由详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

本文由 8源码吧 作者:liaolong 发表,其版权均为 8源码吧 所有,文章内容系作者个人观点,不代表 8源码吧 对观点赞同或支持。如需转载,请注明文章来源。

发表评论