微信小程序之本地存储

此篇博客主要记录一下把用户记录存储在本地(不推荐,最好存在服务器)的一种方式,方便自己以后查看。

1.在数据文件夹写一个存放数据的js文件

/* pages/data/newsdata.js */

/* pages/data/newsdata.js */

//定义数组 newsdata
var newsdata=[
  {
    "newsid": 0,
    "author_name": "iwen",
    "author_icon": "../../image/icon.png",
    "author_time": "2019/4/28",
    "title": "百度起诉今日头条",
    "article_img": "../../image/bluesky.jpg",
    "news_intro": "4月26日,第一财经记者获悉,今日头条(北京字节跳动科技有限公司)被百度以不正当竞争为由起诉到北京市海淀区人民法院,要求字节跳动立即停止侵权,赔偿相关经济损失及合理支出共计人民币9000万元,并连续30天在其APP及网站首页道歉。除民事起诉外,百度也同时向法院提交了行为禁止保全申请书",
    "article_icon": "../../image/icon.png",
    "like_count": 20,
    "comment_count": 15
  }, 
  {
    ...
  },
    ...
]

//module.exports的作用是导出给其他文件能使用
module.exports={
  //把内部newsdata变量赋给外部newsdata,在外部使用时,相当于直接调用内部newsdata
  newsdata:newsdata
}

2.在需要引用的js文件中引用

// pages/news/newsdetail/newsdetail.js
var newsdata=require("../../data/newsdata.js");

wxml文件,其中collec_article数函数

<!--pages/news/newsdetail/newsdetail.wxml-->
<view>
<button bindtap='collec_article'>收藏</button>
<text wx:if="{{collection}}">成功收藏</text>
<text wx:else>收藏失败</text>
</view>

js文件

// pages/news/newsdetail/newsdetail.js
var newsdata=require("../../data/newsdata.js");

Page({

  /**
   * 页面的初始数据
   */
  data: {
    collection: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.id);
    //设置options.id对应的article数据,方便此js文件使用
    this.setData(newsdata.newsdata[options.id]);
    //把id赋值到data中方便此js文件使用
    this.setData({
      article_id: options.id
    })
    //第一次点击收藏时
    //iscollects是存取数据的集合
    var iscollects = wx.getStorageSync("iscollects");
    //若存在本地存储
    if(iscollects)
    {
      //iscollect是单条数据
      var iscollect = iscollects[this.data.article_id];
      this.setData({
        collection:iscollect
      })
    }
    //不存在存储时
    else{
      //第一次进入,不存在数据
      var iscollects={};
      iscollects[this.data.article_id]=false;
      var iscollect = iscollects[this.data.article_id];
      wx.setStorageSync("iscollects", iscollects);
      this.setData({
        collection:iscollect
      })
    }

  },
//此函数用来进行收藏和取消收藏(不是第一次点击)
  collec_article:function(event){
    //iscollects是所有存储数据的集合
    var iscollects = wx.getStorageSync("iscollects");
    //iscollect是单条数据
    var iscollect = iscollects[this.data.article_id];
    //取反,收藏边取消,未收藏变收藏
    iscollect = !iscollect;
    iscollects[this.data.article_id] = iscollect;
    //存到本地存储
    wx.setStorageSync("iscollects", iscollects);
    this.setData({
      collection:iscollect
    })
  },

 

这篇文章主要是微信的的storage系列API的用法,代码除了option.id的部分,其余部分完整,option.id可以参考我的上一篇博客:

https://blog.csdn.net/qq_26658517/article/details/89643078

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值