• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 微信小程序实现点赞业务

微信小程序实现点赞业务

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了微信小程序,点赞业务等相关知识,希望对您有所帮助

这篇文章主要为大家详细介绍了微信小程序实现点赞业务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现点赞业务的具体代码,供大家参考,具体内容如下:

一、效果

微信小程序实现点赞业务


二、实现

一、逻辑

1、从登录界面时,用户数据已经缓存到本地,在onload中从本地获取用户信息保存在data.userInfo中

2、判断用户的_openid是否在loveList返回的列表中,如果是取消赞,如果不是点赞加入昵称到loveList中

3、下面用的是nickName判断,后期优化成使用_openid判断


微信小程序实现点赞业务

微信小程序实现点赞业务

微信小程序实现点赞业务

微信小程序实现点赞业务


二、wxml

<!-- wx:index = "index":列表循环后所有位置都可以访问索引 --><view class="item" wx:for="{{list}}" wx:index = "index">    <view class="left">        <image class="avatar"></image>    </view>    <view class="right">        <view class="nickname">{{item.nickName}}</view>        <view class="content">{{item.content}}</view>        <view class="image-list">            <image class="image" wx:for="{{item.imageList}}"></image>        </view>        <view class="time-area">            <view class="time">{{item.time}}</view>            <view>                <!--                data-index="{{index}}"                1.设置后在回调函数中currentTarget.dataset中显示                -->                <image class="operation-button" src="../../images/caozuo.png" catchtap="showOperationPannel" data-index="{{index}}"></image>                <!-- 判断当前索引和面盘索引是否一致 -->                <view class="operation-pannel" wx:if="{{showOperationPannelIndex == index}}">                    <!-- 设置索引和点击函数 -->                    <view class="tab" catchtap="clickLove" data-index="{{index}}">                        <image class="image" src="../../images/love-white.png"></image>                        <text>赞</text>                    </view>                    <view class="tab">                        <image class="image" src="../../images/comment-white.png"></image>                        <text>评论</text>                    </view>                </view>            </view>          </view>        <view class="love-comment">            <!--             item.loveList=重复            item.loveList            <view class="love" wx:if="{{item.loveList.length > 0}}">                <image class="love-icon" src="../../images/love-blue.png"></image>                <text class="love-nickname" wx:for="{{item.loveList}}">老夫子 兰陵王</text>            </view>            -->            <view class="love" wx:if="{{item.loveList.length > 0}}">                <image class="love-icon" src="../../images/love-blue.png"></image>                <!-- love和整个循环的item不冲突 -->                <text class="love-nickname" wx:for-items="{{item.loveList}}" wx:for-item = "love">{{love.nickName}}</text>            </view>            <view class="comment" wx:if="{{item.commentList.length > 0}}">                <view wx:for-items="{{item.commentList}}" wx:for-item = "comment">                    <text class="comment-nickname">{{comment.nickName}}</text>                    <text class="comment-content">{{comment.content}}</text>                </view>            </view>        </view>    </view></view>

三、js

// pages/circle/list.jsvar that;Page({    /**     * 页面的初始数据     */    data: {        userInfo:null,        list:[],        // 当前点击操作面板的索引,每条朋友圈一个面板        showOperationPannelIndex:-1,    },    /**     * 生命周期函数--监听页面加载     */    onLoad: function (options) {        that = this;        for (var i = 1; i < 10; i++) {            // 定义一个对象存储数据            var circleData = {};            circleData.nickName = "朋友-" + i;            circleData.content = "朋友发布内容-" + i;            circleData.time = "2020-05-0" + i;            //图片列表            var imageList = [];            // 点赞列表            var loveList = [];            // 评论列表            var commentList = [];            // 这三个数组赋值给circleData            circleData.imageList = imageList;            circleData.loveList = loveList;            circleData.commentList = commentList;            // 给3个数组赋值            for (var j = 1; j < i; j++) {                // 图片路径,占位                imageList.push(j);                // loveList,定义loveData对象                var loveData = {};                loveData.nickName = '点赞-' + j;                // 点赞数组加入loveList                loveList.push(loveData);                // 评论数据                var commentData = {};                commentData.nickName = "兰陵王-" + j + ":";                commentData.content = "评论内容-" + j;                // 加入数据                commentList.push(commentData);            }            that.data.list.push(circleData);        }        // 重新渲染        that.setData({            list: that.data.list        })        //获取用户信息        wx.getStorage({            key: 'userInfo',            success(res){                //转换成对象                console.log("getStorage success:",JSON.parse(res.data));                that.setData({                    userInfo:JSON.parse(res.data)                })            }        })    },    //控制操作面板展示    showOperationPannel(e){        console.log("showOperationPannel",e);        // 获取点击的索引        var index = e.currentTarget.dataset.index;        // 如果正在展示,则关闭        if(that.data.showOperationPannelIndex == index){            that.setData({                // 索引从0开始                showOperationPannelIndex:-1            })        } else {            that.setData({                // 设置成当前点击的索引                showOperationPannelIndex:index            })        }     },    // 点赞功能    clickLove(e){        console.log(e);        var index = e.currentTarget.dataset.index;        // 将这条数据取出        var circleData = that.data.list[index];        var loveList = circleData.loveList;        var isHaveLove = false;        for(var i = 0; i < loveList.length; i++){            if(that.data.userInfo.nickName == loveList[i].nickName){                isHaveLove = true;                // 移除点赞                loveList.splice(i,1);                break;            }        }        if(!isHaveLove){            loveList.push({nickName:that.data.userInfo.nickName});        }        that.setData({            list:that.data.list,            // 关闭点赞评论面板            showOperationPannelIndex:-1        })    }, })


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 手把手教你在微信小程序中使用canvas绘制天气折线图(附代码)
  • 微信小程序页面向下滚动时tab栏固定页面顶部实例讲解
  • uniapp实现微信小程序全局分享的示例代码
  • 浅析微信小程序中自定义组件的方法
  • 微信小程序发布新版本时自动提示用户更新的方法
  • 微信小程序wx.request使用POST请求时后端无法获取数据解决办法
  • 微信小程序如何获取到openid和session_key
  • PHP微信小程序解包过程实例详解
  • 微信小程序中的button按钮宽度设置无效怎么办
  • 微信小程序反编译提取源代码方法

相关文章

  • 2022-04-29DedeCMS获取栏目图片如果没有栏目图片调用顶级图片
  • 2022-04-29分享推荐一款好用的TP富文本编辑器-CKEditor
  • 2022-04-29Node.js excel转json
  • 2022-04-29如何利用CSS制作一个聚光灯效果(附代码)
  • 2022-04-29如何升级或修改nodejs的版本
  • 2022-04-29详解ThinkPHP5实现极验滑动验证码geetest功能
  • 2022-04-29Photoshop制作地裂火焰效果艺术字教程
  • 2022-04-29Photoshop绘制清新绿色立体桔子按钮
  • 2022-04-29怎样选择合适的关键词去销售产品
  • 2022-04-29Photoshop绘制逼真的老式收音机

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop制作甜美质感的宝石艺术字教程
    • Photoshop设计超酷的扁平化软件图标
    • 宝塔面板根据访问协议头屏蔽字节跳动爬虫
    • 代码如何实现移除WordPress版本号
    • 利用纹理素材及图层样式制作个性的金色纹理字
    • Javascript怎么移除数组元素
    • 3个小时内网站被谷歌,搜搜,有道收录
    • Photoshop绘制超强质感立体按钮
    • vue-router两种模式有什么区别
    • 简析Thinkphp5框架通过模型进行增删改查

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有