페이지 vuex 데이터를 새로 고쳐도 사라지지 않고 페이지가 점프하지 않는 문제(자세한 튜토리얼)
이 글에서는 페이지 새로 고침 시 vuex 데이터가 사라지고 페이지가 넘어가는 것을 방지하는 방법에 대한 자세한 설명을 주로 소개하고 참고용으로 올려드립니다.
먼저 이야기하겠습니다
vuex와 경로 차단이 한동안 작업 중이었는데, 드디어 여기서 공유하고 싶습니다. 기본 소개는 없습니다. !!!
본론으로 돌아가기
Refresh
새로고침은 프로젝트를 다시 시작하는 것과 같습니다. 이는 저장소를 통해 사라지며 프로젝트가 닫히면 사라집니다. 이는 컴퓨터를 다시 시작하면 RAM 데이터에 저장되는 것과 비슷합니다. 하지만 세션스토리지, 로컬스토리지, 쿠키에 저장된 콘텐츠는 사라지지 않습니다.
Vuex
방법 및 아이디어
우선 Vuex에 대해 잘 알고 있어야 합니다. Vue.js 애플리케이션용으로 개발되었습니다. 즉, vuex의 저장소에 있는 데이터는 임시이며 일부 변수입니다. 페이지를 새로 고치고 다시 로드하면 모든 것이 지워지고 두 번째 로그인이 발생하지 않습니다. 페이지를 새로 고칠 때 세션 저장소(페이지를 닫으면 사라짐), 로컬 저장소 및 쿠키 데이터가 사라지지 않으므로 요청된 모든 데이터를 저장할 수 있습니다.
2. vuex 플러그인을 사용하세요3. 로그인 시 토큰 및 로그인 상태(사용자 정의)를 세션 저장소에 할당하고(경로 점프) 토큰 및 로그인 상태를 가져옵니다. 해당 페이지의 데이터를 제가 직접 다시 요청하겠습니다 고민 끝에 방법 3을 선택했는데 이 방법을 라우팅 가로채기와 결합해서 코드를 올려야 합니다. 라우팅이 완료된 후codeindexactions
// 登录 Login({ commit, state }, userInfo) { return new Promise((resolve, reject) => { login(userInfo).then(response => { let token = response.data.token; commit('SET_TOKEN', token); sessionStorage.setItem('token', token); //获取到新的token的时候赋值给sessionStorage commit('SET_ISLOGIN', true); // 登录成功修改store中的登录状态 resolve() }).catch(error => { reject(error) }) }) },
Routing
간단한 소개: 경로 차단은 경로의 '라이프 사이클'과 동일합니다. 이 기간 동안 수행하려는 작업을 수행합니다. 이번에는 경로가 점프하기 전에만 수행하려면 router.beforeEach((to, from, next) => { // ... }를 사용하세요. ). 공식 홈페이지에는 구체적인 내용이 아주 자세히 나와 있습니다
main.jsrouter.beforeEach((to, from, next) => { let isLogin = sessionStorage.getItem('isLogin'); let token = sessionStorage.getItem('token'); let id = sessionStorage.getItem('id'); if (to.meta.requireAuth) { // 判断是否有权限 if (!store.state.isLogin && !isLogin && to.path !== '/login') { // store和sessionStorage中登录状态都为false并且跳转到 不是登录的页面时 都强行跳转到登录页面 next({ path: '/login', }); } else if (!isLogin && to.path !== '/login') { // 已经在登录页面进入首页的时候 sessionStorage.setItem('isLogin', store.state.isLogin); next(); } else if (isLogin && to.path !== '/login') { // 登录进入后刷新页面时 store.commit('SET_TOKEN', token); store.commit('SET_ISLOGIN', isLogin); store.commit('SET_ID', id); next(); } else { next(); } } else { next(); } });
pit
1. main.js 파일에 경로 차단을 작성했는데 반드시 vue 마운트 위에 작성해야 하므로 주의하세요. (new Vue) 2. 로그인 클릭 시 액션의 로그인 방식은 경로 차단보다 이전이어야 합니다
3 .로그아웃 및 로그인 시 sessionStorage의 변수를 삭제하는 것을 잊지 마세요
위 내용은 제가 컴파일한 내용입니다 모두를 위해. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
js를 사용하여 json을 호출하는 방법
위 내용은 페이지 vuex 데이터를 새로 고쳐도 사라지지 않고 페이지가 점프하지 않는 문제(자세한 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제










![Vue 애플리케이션에서 vuex를 사용할 때 '오류: [vuex] 알 수 없는 작업 유형: xxx' 문제를 해결하는 방법은 무엇입니까?](https://img.php.cn/upload/article/000/887/227/168766615217161.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Vue.js 프로젝트에서 vuex는 매우 유용한 상태 관리 도구입니다. 이는 여러 구성 요소 간에 상태를 공유하는 데 도움이 되며 상태 변경을 관리하는 안정적인 방법을 제공합니다. 그러나 vuex를 사용할 때 가끔 "Error:[vuex]unknownactiontype:xxx" 오류가 발생합니다. 이 기사에서는 이 오류의 원인과 해결 방법을 설명합니다. 1. 오류 원인 vuex를 사용할 때 몇 가지 액션과 뮤를 정의해야 합니다.
![Vue 애플리케이션에서 vuex를 사용할 때 '오류: [vuex]는 돌연변이 처리기 외부에서 vuex 저장소 상태를 변경하지 않습니다.' 문제를 해결하는 방법은 무엇입니까?](https://img.php.cn/upload/article/000/000/164/168760467048976.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Vue 애플리케이션에서는 vuex를 사용하는 것이 일반적인 상태 관리 방법입니다. 그러나 vuex를 사용할 때 "오류:[vuex]donotmutatevuexstorestateoutsidemutationhandlers"와 같은 오류 메시지가 나타날 수 있습니다. 이 오류 메시지는 무엇을 의미합니까? 이 오류 메시지가 나타나는 이유는 무엇입니까? 이 오류를 해결하는 방법은 무엇입니까? 이 기사에서는 이 문제를 자세히 다룰 것입니다. 오류 메시지에는 다음이 포함됩니다.

Vue2.x는 현재 가장 널리 사용되는 프런트 엔드 프레임워크 중 하나이며 전역 상태 관리를 위한 솔루션으로 Vuex를 제공합니다. Vuex를 사용하면 상태 관리가 더욱 명확해지고 유지 관리가 쉬워집니다. 개발자가 Vuex를 더 잘 사용하고 코드 품질을 향상하는 데 도움이 되도록 Vuex의 모범 사례가 아래에 소개됩니다. 1. 모듈식 조직 상태를 사용합니다. Vuex는 단일 상태 트리를 사용하여 애플리케이션의 모든 상태를 관리하고 구성 요소에서 상태를 추출하여 상태 관리를 더 명확하고 이해하기 쉽게 만듭니다. 상태가 많은 애플리케이션에서는 모듈을 사용해야 합니다.

Vuex는 무엇을 하나요? Vue 공식: 상태 관리 도구 상태 관리란 무엇입니까? 상태는 여러 구성 요소 간에 공유되어야 하며 하나의 변경으로 모든 것이 변경됩니다. 예를 들어 사용자 로그인 상태, 사용자 이름, 지리적 위치 정보, 장바구니 항목 등 전역적으로 사용되는 일부 상태 정보가 있습니다. 이때 전역 상태 관리를 위한 도구가 필요하며 Vuex가 그러한 도구입니다. 단일 페이지 상태 관리 View–>Actions–>State 뷰 레이어(view)는 상태(state)를 변경하기 위한 액션(action)을 트리거하고 뷰 레이어(view) vuex(Vue3.0)에 다시 응답합니다.

인터뷰에서 vuex의 구현 원리에 대한 질문을 받았을 때 어떻게 답해야 할까요? 다음 기사는 vuex의 구현 원리에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다.

Vue 애플리케이션에서 Vuex를 사용하는 것은 매우 일반적인 작업입니다. 그러나 Vuex를 사용할 때 가끔 "TypeError: Cannotreadproperty'xxx'ofundefine" 오류 메시지가 표시됩니다. 이 오류 메시지는 정의되지 않은 속성 "xxx"를 읽을 수 없어 프로그램 오류가 발생함을 의미합니다. 이 문제의 원인은 실제로 매우 분명합니다. Vuex의 특정 속성을 호출할 때 이 속성이 올바르게 설정되지 않았기 때문입니다.

구체적인 단계: 1. vuex(vue3 권장 4.0 이상) pnpmivuex-S2를 설치하고, main.js에서 importstorefrom'@/store'//hx-app의 전역 구성을 구성합니다. constapp=createApp(App)app.use(store) 3 .새 관련 폴더 및 파일을 생성합니다. 여기에서는 vuex 모듈을 사용하여 다른 페이지와 파일을 배치한 다음 여기에서 Import.meta.glob을 사용합니다. ~의

이 기사에서는 Vue 상태 관리에 대해 설명하고 Pinia와 Vuex라는 두 가지 Vue 상태 관리 라이브러리를 소개합니다.
