为了账号安全,请及时绑定邮箱和手机立即绑定

关于vuex传值出现的问题

关于vuex传值出现的问题

胡子哥哥 2019-03-11 12:19:32
练习使用简单的vuex来传值store.js:const store = new Vuex.Store({  // 定义状态  state: {    headImg: ""  },  mutations:{    newImg(state,msg){      state.headImg=msg;    }  }})传值:this.$store.commit("newImg",val.HeadImgUrl);接收:<template>  <div>    <img :src="msg" alt="">  </div></template><script>  export default {    name: 'detail',    data () {      return {        msg: ''      }    },    created(){      this.msg=this.imgSrc;    },    computed: {      imgSrc () {        return this.$store.state.headImg; //vuex接受值      }    }</script>问题是在刷新的时候这个值就没了,怎么让它在刷新完页面后还存在这个值呢?(刚学vue没多久,还请指点)
查看完整描述

4 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

store内的状态刷新后会重新初始化,可以通过本地存储解决


const store = new Vuex.Store({

  // 定义状态

  state: {

    headImg: JSON.parse(sessionStorage.getItem('headImg')) || ""

  },

  mutations:{

    newImg(state,msg){

      sessionStorage.setItem('headImg', JSON.stringify(msg))

      state.headImg=msg;

    }

  }

})


查看完整回答
反对 回复 2019-03-29
?
HUX布斯

TA贡献1876条经验 获得超6个赞

this.$store.commit("newImg",val.HeadImgUrl);这个方法写到


created(){

  this.$store.commit("newImg",val.HeadImgUrl);

  this.msg=this.imgSrc;

},


查看完整回答
反对 回复 2019-03-29
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

本质上$store挂载在vue实例中的一个对象,当刷新页面后会重新生成vue实例,$store中的值也就不存在了。


查看完整回答
反对 回复 2019-03-29
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

把值在localhost里存一份,vuex中 state默认值是localstorage里的值就可以了


查看完整回答
反对 回复 2019-03-29
  • 4 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信