c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

uniapp路由如何实现带参数的跳转

吴美玉 2023-07-09编程经验
uni-app路由传参-基础传参uni-app路由提供了非常便捷的参数传递方式,只需要在跳转的时候传递一个json对象的参数就可以了,接收参数的页面可以通过this.$route.

uni-app路由传参-基础传参

uni-app路由提供了非常便捷的参数传递方式,只需要在跳转的时候传递一个json对象的参数就可以了,接收参数的页面可以通过this.$route.params来获取参数,下面是一个例子:

//跳转时传递参数
uni.navigateTo({
  url: '/pages/detail/detail?id=1&name=张三'
})

//接收参数
export default {
  onLoad(options){
    console.log(options.id) // 1
    console.log(options.name) // 张三
  }
}

uni-app路由传参-对象传参

如果需要传递较多的信息,可以考虑使用对象传参的方式,具体来说,在跳转的时候可以将一个JavaScript对象作为参数传递,接收参数的页面可以通过this.$route.query来获取参数,下面是一个例子:

//跳转时传递参数
uni.navigateTo({
  url: '/pages/detail/detail?user=' + JSON.stringify(user)
})

//接收参数
export default {
  onLoad(){
    let user = JSON.parse(this.$route.query.user)
    console.log(user.name)
    console.log(user.age)
  }
}

uni-app路由传参-路由元信息传参

还有一种传参方式是通过修改路由元信息来完成,路由元信息是uni-app路由提供的一个用于保存路由信息的对象,一旦路由被注册到路由表中,元信息就可以通过$route.meta来获取:

//路由注册时传递参数
const routes = [
  {
    path: '/login',
    name: 'Login',
    component: Login,
    meta: {
      title: '用户登录',
      requireAuth: false
    }
  }
]

//获取路由元信息
export default {
  created(){
    console.log(this.$route.meta.title) // 用户登录
  }
}

uni-app路由传参-在路由对象中加入自定义数据

如果我们需要在页面之间传递数据,但不想通过路由传参的方式,可以在路由对象中添加自定义数据来完成,比如可以在路由中加入一个myData属性:

//路由注册时传递参数
const routes = [
  {
    path: '/login',
    name: 'Login',
    component: Login,
    myData: {
      name: '张三',
      age: 18
    }
  }
]

//获取自定义数据
export default {
  created(){
    console.log(this.$route.myData.name) // 张三
  }
}

文章评论