页面传递数据(正向,跳转前为传递,跳转后为接收)
跳转前页面html
<view>页面传递数据(正向)</view>
<button type="default" @click="goToDetail01">01-detail01 navgate</button>
跳转前页面js
<script>
export default {
methods:{
goToDetail01() {
uni.navigateTo({
url: '/pages/detail/detail?name=ningm&age=18'
})
},
goToDetail01() {
uni.navigateTo({
url: '/pages/detail/detail',
success(res) {
res.eventChannel.emit('acceptDataFormHomePage', {
data: '我是home页面传递给detail的数据'
})
}
})
}
}
}
</script>
跳转后页面js
<script>
export default {
onLoad(options){
console.log('在options接收home传递过来的数据:', options);
},
onLoad(options) {
const eventChannel = this.getOpenerEventChannel()
eventChannel.on('acceptDataFormHomePage', (data) => {
console.log('在options接收home页面eventChannel传递过来的数据:', data);
})
}
}
</script>
页面传递数据(逆向|全局事件总线,跳转前为接收,跳转后为传递)
跳转前页面html
<view>页面传递数据(逆向)</view>
<button type="default" @click="goToDetail02">02-detail02 navgate</button>
跳转前页面js
<script>
export default {
onLoad(){
uni.$on('acceptDataFormDetail03', this.acceptDataFormDetail03)
},
onUnload(){
uni.$off('acceptDataFormDetail03', this.acceptDataFormDetail03)
},
methods:{
goToDetail02() {
uni.navigateTo({
url: '/pages/detail/detail',
events: {
acceptDataFormDetail(data) {
console.log('接收到detail传递给home的数据', data);
}
}
})
},
goToDetail02() {
uni.navigateTo({
url: '/pages/detail/detail'
})
},
acceptDataFormDetail03(value) {
console.log('接收到detail传递给home的数据', value);
}
}
}
</script>
跳转后页面html
<button type="default" @click="goBack">返回上一页</button>
跳转后页面js
<script>
export default {
methods:{
goBack() {
uni.navigateBack({
delta: 1
})
const eventChannel = this.getOpenerEventChannel()
eventChannel.emit('acceptDataFormDetail', {
data: '这里是detail传递给home页的数据'
})
},
goBack() {
uni.navigateBack({
delta: 1
})
uni.$emit('acceptDataFormDetail03', {
data: '这里是detail传递给home页的数据'
})
}
}
}
</script>