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. vim的visual模式

    在可视化模式下,可以对一个文本块的整体进行操作.例如,首先高亮选中一部分文本,然后用d命令删除这个文本块.可视化模式的好处在于,你可以在做改动之前,就看到操作将影响的文本.可视化模式可以分为以下三种: ...

  2. 设计模式:享元(FlyWeight)模式

    设计模式:享元(FlyWeight)模式 一.前言     享元(FlyWeight)模式顾名思义,既是轻量级的,原因就是享元,共享元素,这里的元素指的是对象.如何共享对象,那就是在检测对象产生的时候 ...

  3. July 18th 2017 Week 29th Tuesday

    My heart is stronger now that you are in it. 我的心里有了你,从此变得更强大. You will no longer feel lonely if ther ...

  4. 科普文:从人人网看网络科学(Network Science)的X个经典问题

    转:https://zr9558.wordpress.com/2013/12/05/科普文:从人人网看网络科学(network-science)的x个经典问/ 长文,写了N个小时写完的.你肯定能看懂, ...

  5. 简单封装的ajax请求

    简单封装了一个ajax请求,做一下统一处理,少写重复代码,只是一个初步的代码,没有经过优化. $.extend({ myAjax: function (option, rollBack) { var ...

  6. 使用GraphViz画caffe网络结构图

    参考http://blog.csdn.net/happynear/article/details/45440709 1. 安装pydot: sudo pip install pydot 2. 安装Gr ...

  7. Css animation 与 float 、flex 布局问题

    1. 有这样一段css html 代码 <div class="container"> <div class="float-left"> ...

  8. hadoop-2.2.0 HA配置

    采用的是4台真实机器: namenode:qzhong  node27 datanode:qzhong node27 node100 node101 操作系统环境:qzhong(Ubuntu-14.0 ...

  9. css清除间隙

    .clear{clear:both;height:0;width:0;line-height:0;overflow:hidden;}

  10. springboot自定义异常页面

    废话不多,直接开始. 项目目录: 说明:springboot 静态文件放在static目录中,如images中放的图片:templates目录下error中存放的是错误页面,如500.html代表50 ...