标签:reload extends 数据预处理 detail eth cti imp tor params
文章来源:https://www.jianshu.com/p/29226aeecb60 仅为自己学习记录使用
大家好,学渣的wepy采坑之路又来啦....还记得当初自己的第一个项目传参的时候 页面之间传值怎么做啊..
问问度娘 看看小程序的api 噢 很简单啊.. url拼接 和‘GET‘请求很像嘛...
//扫码传值 传一堆我也不知道的值... wepy.scanCode({}).then(res => { wepy.navigateTo({ url: `qrCodeDetail?type=0&codeParam=${res.result}&storeCode=${this.accDetail.storeName[this.storeIndex].storeCode}` }) }) //qrCodeDetail.wpy接 onLoad(option){ option.type 巴拉巴拉 }
是不是很傻...我现在都不知道我传了一堆什么值给qrCodeDetail页面..数据可视化很差.. 如果我传个对象怎么办....
wepy.navigateTo({ url: `whiteCode?from=${from}&detailObj=${JSON.stringify(this.detailObj)}` })
low不low.....
言归正传... 今天来聊聊wepy自己封装的 一些数据预处理的用法
预加载数据
用于 page1 主动传递数据给 page2,比如 page2 需要加载一份耗时很长的数据。我可以在 page1 闲时先加载好,进入 page2 时直接就可以使用。
预查询数据
用于避免于 redirecting 延时,在跳转时调用 page2 预查询。
我在官网没有看到相关的api..是在别人论坛看到的...
//aaa.wepy data = { list:‘我是B页面需要的LIST‘ } methods = { toB(){ this.$preload(‘list‘, this.list) wepy.navigateTo({ url: `bbb?a=111` }) } } //bbb.wepy // params 正常跳转的参数 // data.from: 来源页面,page1 // data.preload: 预加载数据 onLoad(params,data) { //如果存在 if(data.preload){ console.log(‘获取到aaa页面的值为:‘ + data.preload,list) } }
this.$redirect 删除当前页跳转
this.$navigate 新开一个页面
//aaa.wpy methods = { go(){ this.$navigate(‘./bbb‘) } } //bbb.wpy onPrefetch(){ console.log(‘触发onPrefetch‘) //这里可以提前调取接口 然后把数据return出去 return [1,2,3,4,5] } //data.prefetch: 预查询数据 onLoad(params,data) { data.prefetch //[1,2,3,4,5] }
这样 wepy为我们节约了300ms 鼓掌!!!!
写的有点混乱 有时间再整理以下
一个条件渲染不同入口的小技巧
import wepy from ‘wepy‘ export default class Index extends wepy.page { config = { navigationBarTitleText: ‘我是B入口‘ } //预处理数据 async onPrefetch(){ let change = await this.change() return new Promise((resolve,reject) =>{ resolve({ change }) }) } change(){ return wepy.request({url:‘http://mobile.weather.com.cn/data/sk/101010100.html?_=1381891661455‘}).then(res=>{ return res.data.sk_info.sd }) } onLoad(params,data) { data debugger if(data.prefetch){ data.prefetch.then(list=>{ this.list = list.change }) } } data = { huhai:‘B数据过来了‘, list:null } computed = { now () { return +new Date() } } methods = { change(){ wepy.$event.emit(‘changeName‘,this.huhai ) } } }
最后自己mark一下大佬的文章
标签:reload extends 数据预处理 detail eth cti imp tor params
原文地址:https://www.cnblogs.com/lyspace/p/11951888.html