beforeEnter 후크 기능 사용(코드 첨부)
이번에는 beforeEnter 후크 기능(코드 포함) 사용법과 beforeEnter 후크 기능 사용 시 주의사항에 대해 소개하겠습니다. (다음은 실제 사례인데 한번 살펴보겠습니다.
왜 당신이 하는가? beforeEnter 후크 기능을 직접 만들어야 합니까?
문제 시나리오를 살펴보세요. 프로젝트에 단어 목록 페이지가 있습니다. 각 셀은 해당 단어가 마스터되었는지 여부를 표시합니다. 단어를 학습하고 해당 단어가 마스터되었는지 표시할 수 있으며, 세부정보 페이지에서 앞으로 및 뒤로 버튼을 클릭하여 다른 단어도 학습할 수 있으므로 뒤로를 클릭하면 단어 목록에 모든 단어의 최신 상태가 표시됩니다. 사용자가 마스터한 최종 페이지 관계는 다음과 같습니다.
wordListPage ——> wordDetail(일련의 단어 학습, 종료) ——> wordListPage(단어 목록 새로 고침)
위 시나리오에서는 Vue 수명주기 함수를 사용할 수 없습니다. 왜냐하면 Vue의 수명주기 함수는 beforeCreate, 생성됨, beforeMounted, 마운트 등과 같기 때문입니다. 이는 구성 요소가 초기화될 때만 호출되지만 구성 요소(VM 인스턴스)가 다음에서 나올 때 호출됩니다. 캐시(예: $route.go(-1), keep-alive), 수명주기 함수가 더 이상 호출되지 않으므로 단어 세부정보 페이지에서 목록 페이지로 돌아갈 때 적절한 시간을 찾을 수 없습니다. 물론 위의 경우에는 상대적으로 적은 수의 시나리오가 있지만 여전히 beforeEnter 후크가 필요합니다. function 종속 지식 포인트:Route: vue-router
Mixin: mixin- 중앙 이벤트 버스
- 1.
- 중앙을 위해 이벤트 버스의 경우, 간단한 이해는 공용 Vue 인스턴스(EventBus)를 생성하고 다른 위치에서 동일한 인스턴스를 사용하여 EventBus.$ 방출('demo') 메시지를 트리거하고, 공용 Vue 인스턴스를 사용하여 EventBus.$on( 'demo',() => {}) 좀 더 명확하게 말하면 다양한 장소에 메시지를 보내고 모니터링하는 그런 공용 구성 요소가 있습니다. 메시지 송수신을 자체적으로 구현하므로 이를 중앙 이벤트 버스라고 부릅니다.
import Vue from 'vue'; const EventBus = new Vue(); export default EventBus;
beforeEach Hook 함수를 통해 경로 전환 시 해당 컴포넌트의 beforeEnter 이벤트가 발생하게 됩니다.
코드는 다음과 같습니다: router/index.js
import EventBus from '@/libs/EventBus'; router.beforeEach((to, from, next) => { //如:EventBus.$emit('homeBeforeEnter'); EventBus.$emit(to.name + 'BeforeEnter'); if (to.matched.some(route => route.meta.isAuth)) { ... next() } else { next() } })
여기서 Enter 이전에 경로 전환 이벤트 모니터링 및 구성 요소 인스턴스 후크 기능 트리거가 구현됩니다.
libs/beforeEnterMixin.js
import EventBus from './EventBus'; export default { beforeCreate() { //获取当前路由名称,与前面使用to.name对应 let vmName = this.$route.name; if (!vmName) { return; } // 当组件初始化时,先触发一次,后续将不再调用 this.$options.beforeEnter(); const beforeEnter = vmName + 'BeforeEnter'; //监听路由切换时触发的...BeforeEnter事件 //通过this.$options获取到实例中的beforeEnter钩子函数 //监听到...BeforeEnter事件后,触发钩子函数beforeEnter调用 EventBus.$on(beforeEnter, this.$options.beforeEnter); }, //该函数在这里只作为占位,没有实际意义 beforeEnter() {} };
이 믹스인 객체의 경우 전역 또는 로컬 믹스인을 사용하는 것이 가능합니다.
글로벌 믹싱: main.jsimport beforeEnterMixin from '@/libs/beforeEnterMixin';
Vue.mixin(beforeEnterMixin);
에서 사용: home.vue
<template> <p> 首页 </p> </template> <script> export default { beforeEnter() { console.log('首页 beforeEnter...'); }, created() { console.log('首页 created...') } } </script>
이 시점에서 beforeEnter를 직접 테스트할 수 있습니다. 저는 프로젝트가 많은 곳이라면 어디든 사용하게 될 것입니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
vue+webpack을 사용하여 비동기 로딩을 만드는 방법vue 라우터 동적 라우팅 작업 하위 라우팅
위 내용은 beforeEnter 후크 기능 사용(코드 첨부)의 상세 내용입니다. 자세한 내용은 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.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 관리하고 유지 관리 할 수 있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

vue.js가 트래버스 어레이 및 객체에 대한 세 가지 일반적인 방법이 있습니다. V- 결합 지시문은 V-FOR와 함께 사용하여 각 요소의 속성 값을 동적으로 설정할 수 있습니다. .MAP 메소드는 배열 요소를 새 배열로 변환 할 수 있습니다.

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.
