效果图



这一节介绍,登录回调 以及 喜欢列表 的实现。

登录回调:这里是指在获取登录完成之后,再进行下一步的操作。

比如效果图中我的页面,默认是未登录状态,积分和喜欢列表的数量都没有获取到。

而登录成功之后不仅将用户信息刷新,同时将积分和喜欢列表的数量刷新。

登录回调

我这里实现的回调层级有点多,这也是回调的一个弊端,当回调层级很多代码就会很难理解。

一个简单的回调例子:

// 1、获取网络数据
_getDataFromServer(userInfo, callBack){
...
callBack()
}
// 2、点击按钮获取用户信息
getUserInfo: function(e) {
...
// 发送网络请求获取服务器用户数据
_getDataFromServer(e.detail.userInfo, this._doNextByLogin)
},
// 3、处理回调结果
_doNextByLogin() {
console.log("登录之后回调,刷新数据")
},

上面的代码就是一个完整的回调流程。

  • 定义回调方法,在合适的位置进行回调。
  • 调用回调方法
  • 执行回调函数

由于登录回调的代码过于长...,这里就不贴出来了。基本的实现流程就是使用了回调。

点赞列表



点赞列表的入口在 【我的-喜欢列表】。

如果用户未登录,显示的是空列表(还应该提示用户登录);

如果用户已登录,则显示用户的点赞列表。

主要的wxml如下:

<view class="book-container" wx:else>
// 点赞布局:图片+名称
<block wx:if="{{bookList.length > 0}}">
<block wx:for="{{bookList}}" wx:key="index">
<view class="book bg-white" hover-class="book-hover" data-id="{{item.bkid}}" data-file="{{item.bkfile}}" catchtap="toBookDetail">
<view class="book-image">
<image src="{{item.bkcover}}" mode="scaleToFill"></image>
</view>
<view class="book-name">
<text>{{ item.bkname }}</text>
</view>
</view>
</block>
</block>
// 空布局
<block wx:else>
<view class="empty-container">
<image class="userinfo-avatar" src="../../images/sad.png" background-size="cover"></image>
<view class="donut-container">空空如也</view>
</view>
</block>
</view>

主要的wxss如下:

// 点赞列表样式
.book-container {
display: flex;
box-sizing: border-box;
flex-direction: row;
flex-wrap: wrap;
align-content: space-between;
padding: 50rpx 0;
}
// 书籍样式
.book {
margin: 0 18rpx;
margin-bottom: 50rpx;
width: 208rpx;
height: 380rpx;
box-shadow: 0 0 15rpx #cdcdcd;
display: flex;
flex-direction: column;
justify-content: center;
border-radius: 10rpx;
}
// 点击图书抖动的动画
.book-hover {
transform: scale(0.96,0.96);
transition: all 1 ease 0;
}
// 书籍样式
.book-image > image {
width: 100%;
height: 300rpx;
}
// 书籍名称
.book-name > text {
margin-top: 10rpx;
display: flex;
justify-content: center;
align-items: center;
color: #1e1e1e;
font-size: 25rpx;
}

以上就是本次的介绍。


扫码关注公众号,轻撩即可。

最新文章

  1. LruCache算法原理及实现
  2. js,jq,css选择器
  3. Java 之 GUI
  4. OS.js – 开源的 Web OS 系统,赶快来体验
  5. Apache部署django项目
  6. android Camera 中如何修改缩放变焦参数
  7. &ldquo;耐撕&rdquo;团队2016.03.28 站立会议
  8. mysql,多对多的hibernate操作对应的jdbc操作
  9. groupBy
  10. php编译错误Note that the MySQL client library is not bundled anymore或者cannot find mysql header file
  11. Android Permissions管理之用户拒绝授权
  12. 51 NOD 1238 最小公倍数之和 V3
  13. Spring @Conditional注解的使用
  14. Java Mail 实现第三方邮件发送功能
  15. 编写程序,使用while循环将50到100的整数相加
  16. Vue实现购物车小球动画
  17. python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法
  18. UITableView 显示在statusbar 下面
  19. BT原理分析
  20. leetcode540

热门文章

  1. 【Beta】Scrum Meeting 8
  2. 【转】目前为止最透彻的的Netty高性能原理和框架架构解析
  3. js判断字符串是否以指定字符串开头或是否包含指定字符串
  4. sshfs+overlayfs实现一个共享只读资源被多个主机挂载成可写目录
  5. MongoDB笔记: 分片集群
  6. vue npm run dev 报错 semver\semver.js:312 throw new TypeError(&#39;Invalid Version: &#39; + version)
  7. 干掉搜狗输入法云代理SogouCloud.exe
  8. Mysql 查询一个月当前时间一个月之前的数据
  9. Centos新服务器需要安装的必备软件包
  10. java面试题实战三