練習使用簡單的vuex來傳值store.js:const store = new Vuex.Store({
// 定義狀態(tài) 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沒多久,還請指點)
2 回答

慕沐林林
TA貢獻2016條經(jīng)驗 獲得超9個贊
this.$store.commit("newImg",val.HeadImgUrl);這個方法寫到
created(){ this.$store.commit("newImg",val.HeadImgUrl); this.msg=this.imgSrc; },

蕭十郎
TA貢獻1815條經(jīng)驗 獲得超13個贊
store內(nèi)的狀態(tài)刷新后會重新初始化,可以通過本地存儲解決
const store = new Vuex.Store({
// 定義狀態(tài)
state: {
headImg: JSON.parse(sessionStorage.getItem('headImg')) || ""
},
mutations:{
newImg(state,msg){
sessionStorage.setItem('headImg', JSON.stringify(msg))
state.headImg=msg;
}
}
})
添加回答
舉報
0/150
提交
取消