_getCode方法与localStorage的意义

_getCode方法与localStorage的意义

# 具体遇到的问题
难道说每次执行_getCode方法都会触发mounted里面的内容吗?

否则设置localStorage岂不是没有意义

mounted () {

  let sid = ''

  if (localStorage.getItem('sid')) {

    sid = localStorage.getItem('sid')

  } else {

    sid = uuid()

    localStorage.setItem('sid'sid)

  }

  this.$store.commit('setSid'sid)

  console.log(sid)

  this._getCode()

},

methods: {

  _getCode () {

    let sid = this.$store.state.sid

    getCode(sid).then((res=> {

      if (res.code === 200) {

        this.svg = res.data

      }

    })

  }

}


正在回答 回答被采纳积分+1

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

1回答
Brian 2020-11-25 00:27:36

mounted是vue的生命周期函数,进入这个页面就会执行一次。


_getCode是我们定义的页面上的一个方法,只有调用了才会执行。


刷新页面mounted执行,mounted里面有_getCode方法,则会执行_getCode


localStorage是去缓存sid,避免sid重复创建,如果本地localStorage里面有sid,则直接取sid数据。

  • 提问者 迷失的小麦 #1
    如果调用了_getCode方法,页面会不会刷新?因为只有页面刷新才会执行mounted,才会去执行localStorage
    2020-11-25 09:14:31
  • 提问者 迷失的小麦 #2
    我知道页面刚加载的时候会执行localStorage,但是似乎_getCode并不会localStorage,这样会不会有什么不利影响?是不是要把localStorage的逻辑写到_getCode里面?
    2020-11-25 09:16:46
  • Brian 回复 提问者 迷失的小麦 #3

    你可以看看vue生命周期方法这一块的知识~https://cn.vuejs.org/v2/guide/instance.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%9B%BE%E7%A4%BA


    刷新与否与Mounted不是对应关系哦,有的时候页面没有刷新,vue组件也可能会重载,比如路由切换。


    你要搞清楚这里的业务是在干嘛:


    1. 我们为了让验证码与redis中存的数据对应,设计了一个sid来作为key值

    2. 我们为了防止在redis中产生大量的垃圾数据,设计了本地LocalStorage保存产生的sid,防止用户刷新页面,产生多个sid

    2020-12-09 11:15:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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