方法一

嵌套使用页面通讯

login.vue

onUnload() {
	uni.$off('need');
},
methods: {
	Login: function(id) {
		uni.$on('need',()=>{
			uni.$emit('login', {
				id: id
			})
		});
	}
}

index.vue

onShow() {
	uni.$on('login',(res)=>{
		console.log(res)
	});
	uni.$emit('need');
},
onHide() {
	uni.$off('login');
}

方法二

页面路由方式

// 在起始页面跳转到test.vue页面,并监听test.vue发送过来的事件数据
uni.navigateTo({
	url: 'pages/test?id=1',
	events: {
	// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
		acceptDataFromOpenedPage: function(data) {
			console.log(data)
		},
		someEvent: function(data) {
			console.log(data)
		}
		...
	},
	success: function(res) {
		// 通过eventChannel向被打开页面传送数据
		res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })
	}
})

// 在test.vue页面,向起始页通过事件传递数据
onLoad: function(option) {
	const eventChannel = this.getOpenerEventChannel();
	eventChannel.emit('acceptDataFromOpenedPage', {data: 'data from test page'});
	eventChannel.emit('someEvent', {data: 'data from test page for someEvent'});
	// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
	eventChannel.on('acceptDataFromOpenerPage', function(data) {
		console.log(data)
	})
}