vuejs 2의 메서드 내에서 뒤로 버튼을 처리할 수 있습니까?
vuejs 2에 도움이 필요해요뒤로 버튼 누름 이벤트를 감지하고 싶다.제가 조사를 좀 해봤는데 이걸 발견했는데
document.addEventListener("backbutton", yourCallBackFunction, false");
세계적인 이벤트인 것 같아요.지역적인 방법이 필요해논리를 쓸 수 있는 곳이지
methods: {
backButtonPressed() {
}
}
아니면 글로벌 기능을 로컬 기능에 바인딩할 수 있습니까?누가 나 좀 도와줄래?TIA
에 이벤트를 추가합니다.mounted
루트 Vue 컴포넌트(Vue 인스턴스가 연결되어 있는 컴포넌트)의 메서드.
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
yourCallBackFunction () {
// Your logic
}
}
mounted () {
document.addEventListener("backbutton", this.yourCallBackFunction, false);
},
beforeDestroy () {
document.removeEventListener("backbutton", this.yourCallBackFunction);
}
})
또한 다음 날짜에도 제거해 드립니다.beforeDestroy
깔끔하게 하기 위해서요.
주의: 개인적으로 Back button 이벤트를 사용한 적이 없기 때문에 이 예에 추가한 것은 동작하고 있지만 글로벌하게 처리할 방법이 필요하기 때문입니다.이 코드만 있으면 됩니다.
주의: @Luke의 설명에 따라 SSR 컨텍스트에서 실행되지 않도록 마운트된 이벤트에 리스너를 추가합니다.SSR가 요인 또는 고려사항이 아닌 경우created
라이프 사이클 훅
만약 누군가가 여전히 이 문제를 발견한다면.브라우저 백 이벤트청취자를 위한 솔루션은 https://developer.mozilla.org/de/docs/Web/API/WindowEventHandlers/onpopstate 입니다.
window.onpopstate = function() {
alert('browser-back');
};
vue-router를 사용하는 경우(사용하지 않으면 알 수 없고, 왜...) 컴포넌트에서 사용하는 것이 좋습니다.
beforeRouteLeave(to, from, next) {
if (from.name === 'nameOfFromRoute' && to.name === 'nameOfToRoute' ) {
next(false);
} else {
next();
}
console.log({ to, from });
},
간단합니다. 컴포넌트만 검출할 필요가 있는 경우는,beforeRouteLeave
컴포넌트의 루트에서 기능합니다.
예제:
beforeRouteLeave (to, from, next) {
const answer = window.confirm('Do you really want to leave?)
if (answer) {
next()
} else {
next(false)
}
}
단, 이 동작을 글로벌하게 추가할 필요가 있는 경우에는beforeEnter
루트에 있습니다.
이것은 내가 또한 효과가 있다는 것을 알게 된 하나의 변형이다. 조금 덜 장황하고 덜 사용한다.router.push
BeforeDestroy 라이프 사이클 방식에서
- popstate를 리슨
- 원하는 이름/경로를 눌러 리디렉션합니다.
아래 코드가 더 잘 이해될 것입니다.
beforeDestroy() {
window.addEventListener("popstate", (event) => {
this.$router.push({ path: <your path> });
});
},
이 실장은 Nuxt 2.14.6에서 이루어졌으며 모든 버전의 Vue에서도 동일하게 동작합니다.
비슷한 문제가 발생하여 @click="back"을 사용하여 해결했습니다.함수"와 같은 방법으로 함수를 만들었습니다.
methods: {
backFunction(){
//yourlogic
},
언급URL : https://stackoverflow.com/questions/47974777/can-i-handle-back-button-within-methods-in-vuejs-2
'programing' 카테고리의 다른 글
여러 .so 공유 라이브러리 병합 (0) | 2022.08.09 |
---|---|
사용자 지정 Axios 인스턴스를 가져올 때 Vuex 모듈이 작동하지 않음 (0) | 2022.08.09 |
Vuex 스토리지의 데이터가 vue 구성 요소에 표시되지 않음 (0) | 2022.08.09 |
변수 유형 선언 방법 Python C style (0) | 2022.08.08 |
스프링 MVC - 스프링 컨트롤러에서 맵의 모든 요청 매개 변수를 가져오려면 어떻게 해야 합니까? (0) | 2022.08.08 |