亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于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 關注
  • 454 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號