小程序开发-9-Behavior行为与加入缓存系统优化流行页面
Behavior行为与加入缓存系统优化流行页面
navi组件与移动端触碰区域探讨
触碰区域优化
- 设计师切图切大点,多余部分变成透明色
- 前端将可触碰区域变大
解决向左箭头变灰,向右变灰
禁用事件的技巧
产生一个向左的事件,但是在nav组件里面忽略
组件自身判断是否是第一期,自身禁用向左的按钮
music组件初步实现
完成页面布局
初识组件的Behavior行为
创建组件共同行为,行为与组件的定义很相似
let behaviro = Behaviro({
properties:{
img: String,
conent:String
}
});
export {behaviro};
三个组件都引用behavior
import {behaviro} from '../classic-beh.js'
Component({
behaviors:[classicBeh],
data:{},
method:{},
...
})
behavior继承与多继承的覆盖原则
同名变量覆盖的问题
- 子类覆盖父类,即组件里面的属性值会覆盖behavior里面的属性值
- 数组越靠后的behavior会覆盖靠前的behavior
behaviors:[b1,b2,b3] //即b3会覆盖b2,b2会覆盖b1
注意:生命周期函数不会发生覆盖,即先执行behaviors里面的周期,后执行组件里面的周期
实现最新期刊和第一期期刊的判断逻辑
在classic model中实现第一期期刊的判断逻辑
//是否是第一期
isFirst(index){
return index === 1? true:false;
}
实现最新期刊的判断逻辑
- 获取最新期刊的index,并存入缓存中
//获取最新一期期刊
getLatest(cb){
this.request({
url:'classic/latest',
success: (res)=>{
cb(res);
this._setLatestIndex(res.index);
}
})
}
//将数据存入缓存中
_setLatestIndex(index){
wx.setStorageSync('latest',index);
}
//从缓存中读取数据
_getLatestIndex(){
return wx.getStrageSync('latest');
}
//是否最新期刊数据
isLatest(index){
let latestIndex = this._getLatestIndex();
return latestIndex === index?true:false;
}
实现期刊切换
wxml 里面的代码
<wzh-nav class="nav" title="{{classic.title}}" first="{{first}}" latest="{{latest}}" bind:left="onNext" bind:right="onPrevious"/>
js里面的代码
onNext(){
this._updateClassic('next');
}
onPrevious(){
this._updateClassic('previous');
}
_updateClassic(previousOrNext){
let index = this.data.classic.index;
classicModel.getClassic(index,previousOrNext,(res)=>{
this.setData({
classic: res,
latest: classicModel.isLatest(res.index);
first: classicModel.isFirst(res.index);
});
});
}
classicModel里面的代码
//获得上或下一期数据
getClassic(index,previousOrNext,cb){
this.request({
url: `/classic/${index}/${previousOrNext}`,
success: (res) => {
cb(res)
}
})
}
加入缓存提升用户体验
思路:先从缓存中寻找或者API写入缓存中
小程序开发-9-Behavior行为与加入缓存系统优化流行页面的更多相关文章
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 微信小程序开发日记——高仿知乎日报(中)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...
- 微信小程序开发日记——高仿知乎日报(上)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 微信小程序开发工具测评
1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...
- 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?
原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复 ...
- 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...
- TODO:小程序开发环境搭建
TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...
随机推荐
- wget 模拟 get post请求
wget命令 默认采用GET请求, 如果使用POST请求, wget --post-data '' url // 这样 POST 请求没有请求体.
- EDM邮件群发:群发邮件不进垃圾箱的独家秘笈
EDM邮件群发想要群发的邮件避免进入垃圾箱,不仅需要优化邮件内容和主题,管理收件人邮箱列表,还要有多服务器IP分流技术,控制发信速度,打乱收件人列表等手段,当然更少不了借助专业的邮件群发平台譬如U-M ...
- 零售企业ERP系统慢
数据库优化案例 https://www.cnblogs.com/double-K/p/9210982.html 写在前面 记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是 ...
- 自动生成气泡对话框的jQuery插件CreateBubble.js
之前在写一个界面,想要用到气泡,然而一直找不到现成的有效地办法,是在没有办法了我只好自己写一个,于是就有了现在的CreateBubble.js.很简单的一个函数,但是非常实用. 使用方法: 1.HTM ...
- MATLAB入门学习(整合)
整合一下,都是链接地址: MATLAB入门学习(一):初次使用.. MATLAB入门学习(二):矩阵相关 MATLAB入门学习(三):矩阵常用函数 MATLAB入门学习(四):编写简单.m文件和函数文 ...
- 大素数测试的Miller-Rabin算法
Miller-Rabin算法本质上是一种概率算法,存在误判的可能性,但是出错的概率非常小.出错的概率到底是多少,存在严格的理论推导. 一.费马小定理 假如p是质数,且gcd(a,p)=1,那么 a(p ...
- What is Systems Architecture ?
What is Systems Architecture ? Systems Architecture is a generic discipline to handle objects (exi ...
- functions and closures are reference types-函数和闭包是引用类型
Closures Are Reference Types In the example above, incrementBySeven and incrementByTen are constants ...
- MySQL常用函数 一
一.数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返 ...
- JavaSE注释
注解在JavaSE中算是比较高级的一种用法了,为什么要学习注解,我想大概有以下几个原因: 1. 可以更深层次地学习Java,理解Java的思想. 2. 有了注解的基础,能够方便阅读各种框架的源码,比如 ...