페이지를 새로 고친 후 Vuex persistedState가 작동하지 않음
npm install로 지속 상태를 설치했는데 --vuex-perersstate 저장.
그런 다음 Vuex store.js 파일을 다음과 같이 설정하십시오.
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
title: ''
},
mutations: {},
actions: {},
getters: {},
plugins: [createPersistedState()]
})
..그리고 또 다른 구성 요소에서는 값을 저장소에 전달하고 있다.제목:
this.$store.state.title = this.input
그리고 그것은 동작한다.
하지만 페이지를 새로 고친 후(F5)this.input
더 이상 에 저장되지 않음this.$store.state.title
그리고 그것은 나의 사이트 기능을 망가뜨린다.
내가 뭘 잘못하고 있는 거지?
편집: 정말 바닐라 스타일로 작동하게 되었다.
첫 번째:
this.$store.state.title = this.input
localStorage.setItem('title', this.$store.state.title)
다음:
mounted () {
this.$store.state.title = localStorage.getItem('title')
}
Vuex 플러그인이 작동하지 않는 이유를 계속 알고 싶음:(
아래 코드를 적용해보시겠습니까?
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
title: ''
},
mutations: {},
actions: {},
getters: {},
plugins: [createPersistedState({
key: 'keyname',
storage: window.localStorage
})]
})
"CreatePersistedState" 내에서 경로와 '경로: ['accessRights's''를 다른 속성으로 설정할 수 있다.만약 당신이 길을 제시하지 않는다면, 그 전체는 끈기가 될 것이다.
나는 #vuex 스토어 모듈을 사용하고 있는데, 이것은 #vue #vuex #laravel 어플리케이션으로 #vuex-perersistate를 사용하여 저장 상태를 지속하는 데 효과가 있었다.HTTPS를 사용하지 않는 경우 더 많은 정보를 제공하고 False를 보호하십시오.
import createPersistedState from 'vuex-persistedstate';
import Cookies from 'js-cookie';
Vue.use(Vuex);
export default new Vuex.Store({
strict:true,
modules:{
party,
contract
},
plugins: [createPersistedState(
{
paths:['party.selectedParty','contract.contracts',
'contract.partyId',
'contract.partyContracts',
'contract.selectedContract',
],
storage: {
getItem: key => Cookies.get(key),
setItem: (key, value) => Cookies.set(key, value, { expires: 3,
secure: false }),
removeItem: key => Cookies.remove(key)
},
}
)],
});
알 수 없는 이유로 쿠키에서 상태를 업데이트하지 않는 경우도 있다.가장 단순한 솔루션은 다음과 같은 방법으로 스토리지를 로컬 스토리지로 변경하는 것이다.
createPersistedState({
key: 'somekey',
storage: window.localStorage,
// getState: (key) => Cookies.getJSON(key),
// setState: (key, state) => Cookies.set(key, state, { expires: 3, secure: true })
})
나의 경우, 이 연장에도 같은 문제가 있었지만, 나는 그 문제가 나의 Vuex의 오용에서 비롯된 것이 아니라는 것을 깨달았다.다음에 의해 상태 값을 변경했다.this.$storage.state.VARIABLENAME
. 틀렸다.내가 Vuex 설명서를 다시 읽었을 때, 나는 돌연변이에 대한 상태 값에 액세스해야 한다는 것을 깨달았다.이렇게 했더니 연장이 제대로 됐다.
다음과 같은 방법으로 상태 값을 수정하십시오.
context.commit("SET_VARIABLENAME","value")
Vuex 저장소에 있는 동안 상황은 다음과 같아야 한다.
mutations: {
SET_VARIABLENAME(state,status){
state.MYVARIABLE= status
},
그리고 Vuex의 주 블록에서:
state: {
MYVARIABLE: null,
}
단지 그 때 뿐인 것 같다.commit
통화 완료:
인덱스.js:
import Vue from "vue";
import Vuex from "vuex";
import createPersistedState from "vuex-persistedstate";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
count: 0
},
plugins: [createPersistedState()],
mutations: {
increment: state => state.count++,
decrement: state => state.count--
}
});
new Vue({
el: "#app",
computed: {
count() {
return store.state.count;
}
},
methods: {
assign() {
store.state.count = 4;
},
increment() {
store.commit("increment");
},
decrement() {
store.commit("decrement");
}
}
});
인덱스.포인트
<div id="app">
<p>{{ count }}</p>
<p>
<button @click="increment">+</button>
<button @click="decrement">-</button>
</p>
<p>
<button @click="assign">Assign 4</button>
</p>
<small>
Check out your localStorage to see the updates.
</small>
</div>
꾸러미json
{
"name": "vuex-persistedstate",
"version": "1.0.0",
"description": "Basic example of the vuex-persistedstate plugin",
"keywords": ["vue", "vuex", "vuex-persistedstate"],
"main": "index.js",
"dependencies": {
"vue": "2.5.22",
"vuex": "3.1.0",
"vuex-persistedstate": "2.5.4"
}
}
https://codesandbox.io/embed/vuex-persistedstate-fhb4o?fontsize=14&hidenavigation=1&theme=dark
참조URL: https://stackoverflow.com/questions/58775811/vuex-persistedstate-does-not-work-after-refreshing-page
'Programing' 카테고리의 다른 글
Vue: 소품으로서의 구성 요소/템플릿 (0) | 2022.04.22 |
---|---|
로컬 저장소의 데이터를 사용하여 저장소를 초기화하는 방법? (0) | 2022.04.22 |
공유 개체(.so), 정적 라이브러리(.a) 및 DLL(.so) 간의 차이점? (0) | 2022.04.22 |
Vue CLI 쿠키 업데이트 또는 스토어 업데이트? (0) | 2022.04.22 |
mapGetters에서 단일 Vue getter 별칭 (0) | 2022.04.22 |