96SEO 2026-07-21 01:43 3
在使用 uni-app 开发项目时路由跳转是极为频繁的操作,uni-app 提供的路由跳转 api uni.navigateTo够用但是却不够好用,主要原因是,实际业务中经常涉及大量对象传参的情况,而 uni-app 只支持 query 参数,这就导致,对于对象的传参。必须通过encodeURIComponent先编码,接下来在新的页面再通过decodeURIComponent进行解码,为了编码 url,还要拼接&导致一个页面跳转传参又臭又长,可读性还很差,比如像下面这样:
uni.navigateTo({
url这方面,'/pages/test/pay?question_id=' +
res.data.id + '&service=' +
encodeURIComponent(JSON.stringify(
service)) + '&doctor=' +
encodeURIComponent(
JSON.stringify({
name这方面,this.doctor.name,dept_name: this.doctor
.dept_name,dept_code: this.doctor
.dept_code,code: this.doctor.code
})) + '&description=' +
encodeURIComponent})

光看着就头大,要增加一个传参或者修改一个传参,都很考察眼力,寻找拼接的位置,获取参数的时候。也很鸡肋:
onLoad: function { this.pageHeight = uni.getSystemInfoSync.windowHeight this.question_id = query.question_id this.service = JSON.parse)) this.doctor = JSON.parse)) this.description = decodeURIComponent)}
由此,解决这一痛点就势在必行了项目中虽然使用了u-view框架,提供了$u.route的方法,对 uni-app 的路由跳转方法进行简单的封装,可以支持通过第二个参数以对象的方式传参:
this.$u.route({
url这方面,'pages/components/empty/index',params: {
从name来看,'lisa'
}})
其优点是对路由跳转传参友好了一点,看起来更简洁些,但是也仅此而已了存在的缺陷也很大,主要在于:
events,对实际业务中页面返回的回调无法监听。
但u-view也启发了我对路由封装的一些思路,结合对axios的使用。我对uni-app的路由跳转方法进行了定制化的封装,并单独发布了包caring-route,且成功在业务中使用,基本解决了上述问题。
uni-app 的所有路由跳转方法,更方便调用,名称更简洁tabBar 页面events .7kb
routeroutemethod的类型:tobacktabredirectlaunchmini 跳转小程序query` 解析路由参数
npm i caring-route
对于不需要传递参数的路由跳转,route`函数提供了原生的方法名称和简化的方法名称,并支持两种传参方式:
一种是类似u-view的,传递两个参数route,第一个参数url就是要跳转的路由,第二个参数data则是要传递的参数,与$u .route的区别就是支持传递对象参数,是其增加版,当只需要跳转路由和传递参数时,推荐优先使用route`的调用方式。
第二种是类uni-app的调用方法,传递一个参数route 其基本使用和 uni-app 是相同的。不同点是:
route
的 url只传递跳转的页面方法即可,其页面参数用data或者params来接收。说起来,
下面具体说明
route``的使用方法这个方法是路由跳转中最常使用的 api,caring -route做了三种方法的封装,三个方法是等价的,实际业务中。直接使用route函数是最方便的
// uni .navigateToroute route .to route .navigateTo
对于
uni .redirectTo的封装 // redirectToroute .direct route .redirectTo
对于
uni .reLaunch的封装 route .launch route .reLaunch
对于
uni .navigateBack的封装 // backroute .back route .navigateBack
对于
uni .switchTab的封装 // switchTabroute .tab route .switchTab
传递一个参数 {method} `的使用方法
route => { console .'log } } })
监听events事件
// A页面 route => { console .'log } },})// B页面 const eventChannel = this .'getOpenerEventChannel ';eventChannel .'emit route .'back
获取路由参数
在onLoad中使用route 的 {method} query 方法传入 options,函授调用的返回值为已经解码的路由参数
onLoad { const query = route .'query }
处理跳转成功的回调
使用函数调用方式。添加 {method} .n
route .n ')
跳转微信小程序
使用 {method} mini 方法来 跳转微信小程序
route .'mini.n => { console .'log})
开源地址
github ."com / caring -ui / c...
。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback