Y***@163.com
Y***@163.com
  • 发布:2019-09-01 12:22
  • 更新:2021-06-14 15:08
  • 阅读:17923

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

分类:uni-app

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

uni.navigateTo(OBJECT)

对于做开发的这种传参不太习惯,还是习惯了用一个字典作为传参数据
下面对uni.navigateTo做一下封装并带参数封装
首先单独写一个js文件用来封装页面跳转(注意:动画那些没有写进来,如果想要可以自己加)

navTo.js

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

    uni.navigateTo({    
        url  
    })   
}  

export 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 关注 分享
5***@qq.com 西洲 1***@qq.com 1***@qq.com owlism d***@163.com

要回复文章请先登录注册

w***@qq.com

w***@qq.com

破坏性封装
2021-06-14 15:08
TreeShaking

TreeShaking

传参传变量怎么传
2020-08-11 14:46
Proud

Proud

url+="?srcData="+encodeURIComponent(JSON.stringify(value))
这样不是更简单吗 tag页面直接 反序列化srcData就可以 得到传参
为什么喜欢串字符
2020-05-13 22:05
1***@qq.com

1***@qq.com

够轻,点赞
2019-09-24 10:29
Y***@163.com

Y***@163.com (作者)

回复 hhyang :
好的,我看看
2019-09-01 22:51
hhyang

hhyang

试试这个呢

## [uni-simple-router](https://github.com/SilurianYang/uni-simple-router)
2019-09-01 19:14