有段逻辑我想不通,老师帮忙看一下

有段逻辑我想不通,老师帮忙看一下

 var postsCollected = wx.getStorageSync('postsCollected')这段话是获取缓存 并复值给postsCollected 

判断语句里面的   var postCollected = postsCollected[postId]  我如果按照写的逻辑来想的话,我在写if的时候并不知道  postsCollected[postId] 对应的是true还是false,反正就是如果我不看else的语句,我自己在写的时候根本就想不到if里面的 postsCollected[postId]是什么意思

http://img1.sycdn.imooc.com//climg/5f19228c0987fa9114290598.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,给你讲个很真实的事情,很多程序员,看自己之前写的代码,会出现不知道这个代码是做什么的情况。因为人的记忆有时效性,而且程序员要接触到东西既多且杂,所以过了一段时间,很容易彻底遗忘,所以代码做好备注很重要。因此,建议同学在听课的时候,一方面要做好笔记,另一方面要做好代码的备注,然后多练,练习五遍十遍都很正常,这是一种很好用的方法,加油!

祝学习愉快!

好帮手慕久久 2020-07-23 14:19:17

同学你好,问题解答如下:

项目中的“缓存”,就是把某些元素的状态保存到本地缓存中,wx.getStorageSync('postsCollected')是获取本地缓存中保存的postsCollected这个数据,如下:

http://img1.sycdn.imooc.com//climg/5f192b1e09f9644a09040459.jpg

当进入详情页时,就会在缓存中获取收藏按钮的状态,如果缓存中还未保存过postsCollected,就直接设置postsCollected的值为空对象,并初始化当前收藏按钮的状态为false,将其保存到缓存:

http://img1.sycdn.imooc.com//climg/5f192b2e095a107610050399.jpg

当点击收藏按钮的时候,会触发onColletionTap事件,如下:

http://img1.sycdn.imooc.com//climg/5f192b3d09c331e113690229.jpg

在该事件中,会更新缓存中,对应的收藏按钮的状态:

http://img1.sycdn.imooc.com//climg/5f192b48095eabfe08280726.jpg

这样下次进入详情页时,在onload事件中,就可以从缓存中获取到上一次收藏按钮是什么状态了。

同学刚接触这种利用缓存保存元素状态的方式,想不到、没思路、不知道啥意思,都是很正常的现象,这需要时间积累。

“postsCollected[postId] ”这句代码中“postsCollected”和“postId”都是变量,名字可以更换,这就是通过“对象[变量]”的形式,获取对象中的属性值。

建议同学重点记忆一下这种实现方式,以后遇到相似的,就会有思路了。

祝学习愉快!

  • 提问者 小杨同学呀 #1
    因为这是我第二次写,第一次老师讲的时候当时觉得明白了,后来自己写的时候,就发现 我老是if()里面纠结怎么写。因为在没有考虑到esle里面postsCollected[postId]=false的时候 我是想不到 if里面postsCollected[postId]是干嘛用的
    2020-07-23 14:29:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师