一. 合并对象
Object.assign
Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属 性,复制到目标对象(target)。
eg:
var a= {},b={};
var ab = Object.assign({},a,b);
二. $on $emit $off
使用:
- uni.$on(‘注册事件命名’, function(data){
console.log(‘监听到事件来自 update ,携带参数 msg 为:’ + data.msg);
}) //触发全局的自定义事件- uni.$once(‘注册事件命名’, function(data){
console.log(‘监听到事件来自 update ,携带参数 msg 为:’ + data.msg);
}) //触发一次,在第一次触发之后移除该监听器- uni.$off(‘注册事件命名’)
- uni.$emit(‘注册事件命名’,{msg:‘页面更新’})
q1 : 为什么onUnload 里面使用 $off 事件没有移出注册
- 注册最优放置在onload中,回调数据也在里面处理,如果在请求逻辑中注册,可能onUnload 注销的时候不起作用
- $off 提供的回调必须跟 $on 的回调为同一个才能移除这个回调的监听器。
- 如果只提供事件,不提供回调函数,则移除该事件所有的监听器。所以一般建议直接uni.$off(‘xxx’),销毁监听里不使用回调。
- 注意注意注意,如果跳转页面时,用的是navigateTo的话,貌似不能注销$on 注册的事件!!!
- 如果当前事件注销不掉,而且根据页面判断只使用一次的话,可以用 $once 注册
三. subNvue
使用:
- 定义:const subNVue = uni.getSubNVueById(‘popup’);
- 使用:subNVue.show(‘slide-in-left’,200,()=>{
console.log(‘subNVue 原生子窗体显示成功’); })- 关闭:subNVue.hide(‘slide-out-left’,200);
- 样式:subNVue.setStyle({})
attention: 要注意呢
调用子窗体 要记得关闭哦 不然会创建多个的