微信小程序> 微信小程序收藏功能

微信小程序收藏功能

浏览量:498 时间: 来源:qq_36901488

统一回复,这是我很久以前学习小程序时做的项目,当时是没问题的,最近很多人评论说收藏功能实现不了,但是因为工作原因没空弄
以下是我当时自学小程序的视频地址,里面有收藏的功能的视频,如有需要可以去看看
添加链接描述
detail.wxml中的收藏图标添加属性:
小程序
catchtap是点击事件,wx:if的用法如下:
小程序
detail.js

data: {    detailObj:{},    index:null,    // 是否收藏    isCollected:false  }, handleCollection(){    let isCollected = !this.data.isCollected    this.setData({      // 下面本来是这样子的:isCollected=isCollected,可以简写      isCollected    })    //提示用户    wx.showToast({        title: isCollected ? '收藏成功' : '取消收藏',        icon:'success'    })  },

结果图
小程序小程序
看起来是可以了,但是不难发现当你退出页面再进来按钮又被重置了…
所以我们要把按钮状态保存下来.在handleCollection函数中继续添加:

    //点击收藏图标后缓存数据到本地    //把data中的index放到新let出来的index中,因为下面要把index也存进去,要用index来判断你收藏了哪个页面    let { index } = this.data;        //首先去看一下缓存的数据    wx.getStorage({      key:'isCollected',      success:(data)=>{        let obj = data.data;        //如果有,则刷新,没有则追加        obj[index] = isCollected;        wx.setStorage({          key: 'isCollected',          data: obj,          success: () => {          }        });      }    })

onLoad生命周期函数中添加逻辑:

//根据本地缓存的数据判读用户是否收藏当前文章    let detailStorage  = wx.getStorageSync('isCollected')    //如果没有收藏    if (!detailStorage){      //初始化一个空的对象      wx.setStorageSync('isCollected', {});    }    //如果收藏了    if (detailStorage[index]){      this.setData({        isCollected: true      })    }

好了,收藏功能就做好了

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎