uniapp页面之间通信方式

  1. 路由传值

uni.navigateTo({
	url:'test?id=1&name=uniapp'})

一般传一些简单数据类型的,拼接在url后面即可,跳转页面通过onLoad或者props获取对应的值,如传参过长需要用将要传的参数用JSON.stingify()转换成 字符串然后用encodeURIComponent包裹传入,

页面取值需要用decodeURIComponent()包裹取出,然后用JSON.parse()转换成复杂数据类型

encodeURIComponent(JSON.stringify(item))
JSON.parse(decodeURIComponent(option.item))

  1. 注册全局自定义事件传值

uniapp提供uni.$emit()触发全局自定义事件,第一个参数为事件名称,第二个参数为要传的参数,在需要传参的页面触发全局自定义事件

uni.$on()监听全局自定义事件,第一个参数为全局自定义事件的名称,第二个参数为回调函数,回调函数的参数为传过来的参数对象,在接收参数页面监听全局自定义事件,并在页面卸载时调用uni.$off()取消监听,参数为事件名称

uni.$emit('update',{msg:'页面更新'})
uni.$on('update',function(data){
		console.log('监听到事件来自 update ,携带参数 msg 为:'+ data.msg);
	})
uni.$off('update')

  1. 缓存,uniapp提供了uni.setStorage()方法存储数据到本地缓存,以及uni.getStorage()取出缓存中的数据,以及同步存储和同步取出setStorageSync(),getStorageSync

uni.setStorage({
	key:'storage_key',
	data:'hello',
	success:function(){
		console.log('success');
	}})
uni.getStorage({
	key:'storage_key',
	success:function(res){
		console.log(res.data);
	}});

  1. vuex状态管理

  1. pinia状态管理

详见uniapp官网https://uniapp.dcloud.net.cn/api/storage/storage.html#getstorage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init在uni-app中,不同页面之间可以通过事件总线、uni.navigateTo、uni.navigateBack、uni.redirectTo等方法进行通信。 1. 事件总线:可以使用uni.$emit和uni.$on方法来实现组件之间的通(&NVIC_InitStructure); } void DMA1_Channel5_IRQHandler(void) { /* Clear DMA1 Channel5 Transfer Complete interrupt flag */ 信。uni.$emit用于触发事件,uni.$on用于监听事件。例如: ```javascript // 触发事件 DMA_ClearITPendingBit(DMA1_IT_TC5); /* Reload DMA buffer */ buffer_index = (buffer_index + BUFFER_SIZE)uni.$emit('event-name', data); // 监听事件 uni.$on('event-name', function (data) { console.log % (2 * BUFFER_SIZE); DMA_SetCurrDataCounter(DMA_Channel, BUFFER_SIZE); DMA_MemoryTargetConfig(DMA_Channel(data); }); ``` 2. uni.navigateTo、uni.navigateBack、uni.redirectTo:这三个方法可以用于不同页面之间的跳转和返回,并且可以传递参数。例如: ```javascript // 页面跳转并传递参数 uni.navigateTo, (uint32_t)&dma_buffer[buffer_index]); } int main(void) { /* Configure I2C */ I2C({ url: '/pages/detail/detail?id=' + id }); // 返回上一页并传递参数 uni.navigateBack({ delta_Configuration(); /* Configure I2S */ I2S_Configuration(); /* Configure DMA */ DMA_Configuration(); : 1, success: function () { uni.$emit('event-name', data); } }); // 关闭当前页面并 /* Configure WM8690 */ WM8690_Init(); /* Configure NVIC */ NVIC_Configuration(); /* Load first buffer */ 跳转到其他页面 uni.redirectTo({ url: '/pages/index/index' }); ``` 除了以上方法,uni-app还 memcpy((void*)dma_buffer, (void*)wav_data, BUFFER_SIZE * sizeof(uint16_t)); DMA_SetCurrDataCounter(D提供了uni.$refs、uni.$parent、uni.$children等属性和方法,可以用于访问组件的属性和方法,实现组件之间通信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值