文档
安装
npm install tarojs-router# or yarn add tarojs-router
示例
前言
最近用Taro开发小程序发现一些不好用的地方:
- 页面传参需要手动拼接 url
- 页面传参无法携带大量任意类型数据
- 跳页面取值比较麻烦(比如填写表单跳页面选择城市,往往需要全局存储,回到页面再去取,也可以通过event,但是总要写很多代码)
为了实现上面的需求更方便,于是封装了一下:tarojs-router
看看 tarojs-router 如何解决上面的问题
一、页面传参
// ✘ 手动拼接路径,无法传任意类型,数据量有限制Taro.navigateTo // ✔ tarojs-router 自动拼接,可传任意类型任意大小的数据Router.navigate , // 目标页面获取数据,函数组件:// 目标页面获取数据,Class 组件:
二、跳页面取值
实现这种需求,简单做法是跳转过去后把选中的值全局存储起来,回到页面后再去取,自己实现这个过程比较麻烦
熟悉flutter的可能知道
// 跳转到目标页面final cityData = await Navigator.push(...) // 返回值到上一个页面Navigator.pop({cityName: '深圳', adcode: 'xxxx'})
tarojs-router 中写法基本一致,内部通过 promise 实现
// ✔ tarojs-router 封装了这个过程,直接使用console.logcityData?.cityName) // src/pages/sel-city/index.tsxconst = useRouterbackData
三、路由中间件
tarojs-router 提供和 koa 一致的路由中间件功能
// 实现一个登录检查的路由中间件// auth-check.ts
单个页面路由中间件
有的时候只有部分页面需要做一些处理,则可以定义单页面路由中间件,使用方式如下
Router.navigate