un-app uni.navigateTo页面跳转做封装传参

4 篇文章 2 订阅

uni-app在页面跳转的时候是可以传参的,官方给的方法就是在路由后拼接传参地址

uni.navigateTo(OBJECT)

保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。

OBJECT参数说明

参数类型必填默认值说明平台差异说明
urlString 需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数:-
animationTypeStringpop-in窗口显示的动画效果,详见:窗口动画5+App
animationDurationNumber300窗口动画持续时间,单位为 ms5+App
successFunction 接口调用成功的回调函数 
failFunction 接口调用失败的回调函数 
completeFunction 接口调用结束的回调函数(调用成功、失败都会执行) 

示例

//在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({
    url: 'test?id=1&name=uniapp'
});
对于做开发的这种传参不太习惯,还是习惯了用一个字典作为传参数据

下面对uni.navigateTo做一下封装并带参数封装

首先单独写一个js文件用来封装页面跳转(注意:动画那些没有写进来,如果想要可以自己加)

navTo.js

const togo = function(url,data){
	url += (url.indexOf('?') < 0 ? '?' : '&') + param(data)
	
	uni.navigateTo({  
		url
	}) 
}

exprot function param(data) {
  let url = ''
  for (var k in data) {
    let value = data[k] !== undefined ? data[k] : ''
    url += '&' + k + '=' + encodeURIComponent(value)
  }
  return url ? url.substring(1) : ''
}

exprot {togo}

然后在main.js中注册全局变量

import * as navTo from '@/assets/navTo'
Vue.prototype.$navTo = navTo

最后调用(在vue页面)

<view @click="$navTo.togo('/pages/index/index',{type:1,name:'YanGo'})"></view>

或者在methods钩子也可以

methods: {
    to(){
        let url = '/pages/index/index'
        let param = {
            type:1,
            name: 'YanGo'
        }
        this.$navTo.togo(url,param)
    }
}

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值