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. for循环里面的break;和continue;语句

    for循环里面的break;和continue;语句 break语句 哇,我已经找到我要的答案了,我不需要进行更多的循环了! 比如,寻找第一个能被5整除的数: for循环中,如果遇见了break语句, ...

  2. ESP32D0WDQ6 灯泡 黑客

    这个黑客表现得如何聪明 灯泡 可能泄漏您的Wi-Fi密码O网页链接破解者博客详文 Pwn the LIFX Mini white O网页链接ESP32D0WDQ6, a SoC from ESPRES ...

  3. WBS 工作分解结构

    WBS:工作分解结构(Work Breakdown Structure) 创建WBS:创建WBS是把项目 交付成果和项目工作分解成较小的,更易于管理的组成部分的过程. 主要用途WBS是一个描述思路的规 ...

  4. linux:相关命令以及笔记

    首先,在linux 或者 unix里没有任何的反馈就叫成功,例如: (1)命令执行成功的样子:返回了登录用户信息 (2)命令执行失败的样子:没有返回任何东西 1.按键出现状况 解决:可以使用ctrl+ ...

  5. Android Studio使用GIt提交代码到本地仓库后没有Push,如何回退保存

    当在AS中使用Git来提交代码时,有时候我们不注意的情况下会把不想提交的文件或文件夹(比如\build下的)提交到本地仓库,如果此时并没有Push到远程仓库的话.如果让本地仓库的提交回退并且保存之前的 ...

  6. js实现抛物线运动 兼容IE低版本(转)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. WK 与 JS 的那些事

    苹果在iOS 8中推出了 WKWebView,这是一个高性能的 web 框架,相较于 UIWebView来说,有巨大提升.本文将针对 WKWebView 进行简单介绍,然后介绍下如何和 JS 进行愉快 ...

  8. Gluon sgd

    from mxnet import nd,autograd,init,gluon from mxnet.gluon import data as gdata,loss as gloss,nn num_ ...

  9. Avito Cool Challenge 2018 C. Colorful Bricks 【排列组合】

    传送门:http://codeforces.com/contest/1081/problem/C C. Colorful Bricks time limit per test 2 seconds me ...

  10. (第二场)A Run 【动态规划】

    链接:https://www.nowcoder.com/acm/contest/140/A 题目描述: White Cloud is exercising in the playground.Whit ...