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行为与加入缓存系统优化流行页面的更多相关文章

  1. 微信小程序开发心得

    微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...

  2. 【微信小程序开发•系列文章六】生命周期和路由

    这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...

  3. 微信小程序开发日记——高仿知乎日报(下)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  4. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  5. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  6. 微信小程序开发工具测评

    1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...

  7. 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

    原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复   ...

  8. 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...

  9. TODO:小程序开发环境搭建

    TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...

随机推荐

  1. mysqldump导出sql文件中insert多行问题

    mysqldump为了加快导入导出,默认把数据都缩减在一行里面. 查看和修改不方便,为此,我们可以使用--skip-extended-insert选项来使导出的数据,是多行插入形式的. mysqldu ...

  2. 用QT写一个对话框

    打开QT creater创建取名去findDialog的项目,这个项目要基于QDialog.直接上FindDialog.h的头文件. #ifndef FINDDIALOG_H #define FIND ...

  3. July 22nd 2017 Week 29th Saturday

    If you are not brave enough, no one will back you up. 如果你不够勇敢,没人会替你坚强. I was told that the real man ...

  4. June 26th 2017 Week 26th Monday

    I am a little tempted, but so afraid to look in your eyes. 我对你有一点动心,却如此害怕看你的眼睛. Now that you are tem ...

  5. commons.pool2 对象池的使用

    commons.pool2 对象池的使用 ? 1 2 3 4 5 <dependency>     <groupId>org.apache.commons</groupI ...

  6. Intellij IDEA设置注释作者名字

    方法一:File >> Settings >> Editor >>Code Style >> File and Code Templates>&g ...

  7. web项目脱离Eclipse在Tomcat部署并配置Eclipse调试

    简单来说,把WEB项目打成war包后放到webapps目录下启动tomcat便部署成功了,但是因为与Eclipse没有关联,故而无法Debug调试代码.这时在Tomcat的catalina.sh脚本里 ...

  8. 【[HNOI2006]超级英雄】

    看到楼下有大佬说了网络流做法,来给大佬配个代码 我们只有我可能都觉得如果不动态加边的话\(dinic\)可能跑不了这种需要中途退出的二分图匹配 正当我准备去敲匈牙利的时候突然想到这个题可以二分啊 于是 ...

  9. thrift C++ Centos 安装

    1.在官方下载thrift http://thrift.apache.org/download 这里下载thrift-0.11.0.tar.gz版本 2.如果想支持安装Cpp版本就需要先安装boost ...

  10. 2.spring:集合属性

    1.list  配置java.util.List类型的属性,需要指定<list>标签,在标签里面包含有一些元素,这些标签 可以通过<value>指定简单的常量值,通过<r ...