2017-09-26 9 views
0

나는 어리석은 문제에 직면 해있다. 웹 응용 프로그램에서 (내 스택은 vue + vuex + vue-router) 사용자가보고있는 페이지와 저장소 상태를 완전히 동기화 할 수 없습니다.html5 history API 및 Vue 사용

사용자가 뒤로 또는 앞으로 단추를 트리거하면 "방향"또는 페이지 수에 대한 정보를 전혀 제공하지 않는 동일한 onpopstate 이벤트가 트리거됩니다. 상태 객체에 배열 key 만 간신히 실행할 수있는 것 같습니다 (새 장소로 이동 한 다음 사용자가 어디로 갔는지 추측 할 때 저장함). 그러나 "키"에 해당하는 "문"이 어디에 있는지조차 알지 못합니다.

내 생각에 수동으로 기록 상태 키를 추적하고 사용자가 어디에 있었는지 추측했지만 상호 호환성이 없을 것 같았습니다. 또한 들어 올려야하는 무거운 코드입니다.

여기 내 질문이 있습니다. html5 API의 핵심 요소가 누락 되었습니까? 어떻게 할 수 있습니까 (코드/논리 미니멀리스트 유지)?

미리 감사드립니다.

편집 : 제목을 이름을 변경하고

EDIT2 정보를 추가 : 그것은 단지 정말 동기 라우터 상태 및 저장 상태 ...

나쁜에 vuex 측면에서 경로 정보를 제공하며 않기 때문에 vuex 라우터 동기화가 부적절

추신 : 제발하지 C/P 정의는, 잘 읽고,

답변

1

onpopstate 응용 프로그램의 역사에서 각각의 장소에 상관 event.state의 상태 개체를 제공합니다 생각합니다.

이 상태 개체를 제공하려면 시간에 관계없이 응용 프로그램의 전체 상태를 포함하도록 응용 프로그램을 작성하십시오. State pattern에 대해 읽고 '상태'의 의미를 이해하는 것이 좋습니다.

누군가 또는 특정 시간에 특정 조건이 있습니다.

함축 내가 만들고있어이 event.state 렌더링 작업을 결정하기 위해 모든 애플리케이션 요구해야하기 때문에 당신이 ,에게 응용 프로그램에 역사의 상대적인 위치를 알 필요가 없습니다 것입니다.

+0

나는 어떤 국가가 의미하는지 알고 있으며 그것은 정의를 c/p로 모욕하지만 괜찮습니다. 네, 분명히 상태를 사용하는 것에 대해 생각했지만 분명히 전체 Vue 스택을 사용하고 있으며 내 앱의 상태가 제 질문에 명시된대로 내 가게에서 처리되기 때문에 상태가 최소한이지만 코드/로직이 vue와 함께 작동하도록하고 싶습니다. 또한 내 질문을 잘못 읽었을 수도 있습니다. 사용자가 어디에 있는지, ** 그가 얼마나 멀리 갔는지 **, ** 어떤 방향으로 **인지 알 필요가 없습니다. 다음 번에 "질문을 실제로 이해 했습니까?", "질문의 의미는 무엇입니까?", "대답 할 수 있습니까?" 감사합니다. – rmNyro

+0

나는 그 질문을 잘못 읽지 않았으며, 모욕하려는 의도는 없었다. 이것은 당신이 직면하고있는 개념적 문제보다 더 많은 것처럼 보입니다. 그리고 당신의 질문은 "어떻게 ~ 할 것인가?"였기 때문입니다. 나는 당신이 어떻게 "국가"에 대해 생각해야하는지에 대한 개요를 줄 것이라고 생각했습니다. 'history.pushState()'또는'history.replaceState()'를 호출 할 때, 동기화가 어떤 정렬이 아닌 단순한 조회가되도록 참조하거나 저장소의 상태를 완전히 대체하는 객체를 전달해야합니다 "어느 방향으로 얼마나 멀리"에 기초한 계산.상태 저장 응용 프로그램은 "시간"의 개념을 신경 쓰지 않아야합니다. –