uniapp页面跳转传值
时间: 2024-12-09 17:13:51 浏览: 16
在uniapp中,页面跳转传值是一个常见的需求。uniapp提供了多种方式来实现页面之间的数据传递。以下是几种常用的方法:
1. **使用navigateTo传递参数**:
通过`uni.navigateTo`方法跳转页面时,可以在`url`中拼接参数。
```javascript
// 页面A
uni.navigateTo({
url: '/pages/pageB/pageB?name=张三&age=25'
});
// 页面B
onLoad: function(options) {
console.log(options.name); // 输出:张三
console.log(options.age); // 输出:25
}
```
2. **使用事件总线(EventBus)**:
通过事件总线,可以在不同页面之间传递数据。
```javascript
// 创建一个事件总线
const eventBus = new Vue();
// 页面A触发事件
eventBus.$emit('eventName', { name: '张三', age: 25 });
// 页面B监听事件
eventBus.$on('eventName', (data) => {
console.log(data.name); // 输出:张三
console.log(data.age); // 输出:25
});
```
3. **使用Vuex进行全局状态管理**:
通过Vuex,可以在全局范围内管理状态和数据。
```javascript
// store.js
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
name: '',
age: 0
},
mutations: {
setUser(state, payload) {
state.name = payload.name;
state.age = payload.age;
}
}
});
export default store;
// 页面A
store.commit('setUser', { name: '张三', age: 25 });
// 页面B
computed: {
userName() {
return this.$store.state.name;
},
userAge() {
return this.$store.state.age;
}
}
```
4. **使用本地存储(localStorage或uni.setStorage)**:
通过本地存储,可以在页面之间持久化数据。
```javascript
// 页面A
uni.setStorageSync('user', { name: '张三', age: 25 });
// 页面B
onLoad: function() {
const user = uni.getStorageSync('user');
console.log(user.name); // 输出:张三
console.log(user.age); // 输出:25
}
```
阅读全文