在uniapp中,传递参数可以通过以下几种方式:
1.通过路由传参
在发起页面跳转时,可以在url中添加参数,如下所示:
// 在uni.navigateTo方法中传参
uni.navigateTo({
url: '/pages/detail/detail?id=123&name=hello'
})
在接收页面中,可以通过$router.query来获取传递的参数,如下所示:
export default {
onLoad() {
console.log(this.$route.query) // {id: '123', name: 'hello'}
}
}
2.通过Vuex传参
在Vuex中,可以存储全局的数据,并在不同的组件中进行读取和修改。因此,可以通过Vuex来传递参数。具体的方法如下:
定义Vuex的state和mutations:
const store = new Vuex.Store({
state: {
params: {}
},
mutations: {
SET_PARAMS(state, params) {
state.params = params;
}
}
})
在发起页面跳转时,通过commit方法来修改state中的params对象:
// 在uni.navigateTo方法中通过Vuex传参
uni.navigateTo({
url: '/pages/detail/detail',
success() {
store.commit('SET_PARAMS', {id: 123, name: 'hello'})
}
})
在接收页面中,通过Vuex的mapState来获取state中的params对象:
import { mapState } from 'vuex'
export default {
computed: {
...mapState({
params: state => state.params
})
},
onLoad() {
console.log(this.params) // {id: 123, name: 'hello'}
}
}
以上就是uniapp传参的几种方式,选择合适的方式来满足需求即可。