웹 프론트엔드 JS 튜토리얼 왼쪽 및 오른쪽 페이지 넘기기 전환 애니메이션을 자동으로 판단하는 Vue Router 효과 구현 방법

왼쪽 및 오른쪽 페이지 넘기기 전환 애니메이션을 자동으로 판단하는 Vue Router 효과 구현 방법

Jan 25, 2018 am 11:47 AM
router ~에 대한 페이지 넘기기

얼마전에 모바일 스파 프로젝트를 만들었습니다. 기술 기반은 vue-cli scaffolding의 webpack 템플릿을 사용하기 때문에 모든 페이지에서 .vue 접미사가 붙은 파일을 사용합니다. 이 기사에서는 주로 vue 라우터가 왼쪽 및 오른쪽 페이지 넘기기 전환 애니메이션의 효과를 자동으로 결정하는 방법을 공유합니다.

최근에는 회사에 프로젝트가 상대적으로 적었고 마침내 vue-router를 사용한 나의 작은 경험을 기록할 시간이 생겼습니다.

일반 모바일 포트 단일 페이지 애플리케이션에는 페이지로 이동할 때 해당 전환 애니메이션이 있습니다. :

 1. 현재 1레벨 페이지에서 2레벨 페이지로 점프할 때 표시해야 할 전환 애니메이션은 1레벨 페이지가 화면 왼쪽으로 이동하여 사라질 때

  2단계 페이지가 화면 오른쪽에서 왼쪽으로 이동하면서 나타납니다. (책을 다음 페이지로 넘기는 효과와 유사)

 2. 현재 2단계 페이지에서 다시 1단계 페이지로 점프할 때 표시해야 할 전환 애니메이션은 2단계 페이지가 이동할 때입니다. 화면 오른쪽으로 이동하다가 사라지고,

  화면 왼쪽이 오른쪽으로 이동하면서 나타납니다. (책을 이전 페이지로 되돌리는 효과)

와 유사하지만 질문이 생깁니다. 현재 페이지와 이동할 페이지 사이의 계층적 관계를 어떻게 결정합니까?

제가 해결한 방법은 페이지(컴포넌트)를 생성할 때 페이지를 정의하는 라우터에 페이지의 경로(액세스 경로) 속성을 설정하여 컴포넌트 간의 계층 관계를 구분하는 것입니다.

예를 들어 1단계 페이지(컴포넌트) 'A'의 액세스 경로는 '/A'입니다. 그의 보조 페이지 'B'의 액세스 경로는 '/A/B'입니다.

  그러면 해당 페이지로 점프하기 전에 현재 페이지와 점프할 페이지의 경로 깊이만 비교하면 전환이 동적으로 설정됩니다. 애니메이션 .

예를 들어 '/A/B' 깊이 > '/A' 깊이인 경우 B 페이지에서 A 페이지로 이동하는 경우 효과 2가 되어야 합니다. (책을 이전 페이지로 되돌리는 효과) .

一. 먼저 상위 페이지

home.vue:

<!-- keepAlList是用来动态判断组件是否需要keep-alive,建议保存到vuex中作为全局变量,至于下方的css动画,看官可以按照喜好自由修改-->
<transition :name="transNa">
 <keep-alive :include="keepAlList">
 <router-view class="child-view"></router-view>
 </keep-alive>
</transition>
<style scoped>
.child-view {
 position: absolute;
 width: 100%;
 height: 100%;
 transition: all .5s ease;
 -webkit-transition: all .5s ease;
 -moz-transition: all .5s ease;
}
.rightin-enter,
.leftin-leave-active {
 opacity: 0;
 transform: translate3d(50% 0, 0);
 -webkit-transform: translate3d(50%, 0, 0);
 -moz-transform: translate3d(50%, 0, 0);
}
.leftin-enter,
.rightin-leave-active {
 opacity: 0;
 transform: translate3d(-50% 0, 0);
 -webkit-transform: translate3d(-50%, 0, 0);
 -moz-transform: translate3d(-50%, 0, 0);
}
</style>
로그인 후 복사

two. 두 번째로, main.js 조각을 첨부합니다(페이지로 이동하기 전에 전환 애니메이션을 동적으로 설정하는 데 사용됨)

 Main.js:

//进入路由之前设置拦截器
let noLoginList = ["login", "register", "forget", "home", "classify", "goodsDetial"];
router.routeInfo.beforeEach((to, from, next) => {
 let user = sessionStorage.getItem('user');
 //如果要去登录页面
 if (noLoginList.indexOf(to.name) >= 0) {
  if (!user || user == '') {
   //未登录的状态通行
   next();
   return;
  } else {
   if (["login", "register", "forget"].indexOf(to.name) >= 0) {
    //已登录的状态去首页
    next({
     name: 'home'
    });
    return;
   } else {
    //已登录的状态去首页
    next();
    return;
   }
  }
 } else {
  //去登录页面以外的页面(以下是本文关键代码)
  if (user && user != '') {
   //判断是否为需要缓存组件,如果是添加组件名到数组
   if (to.meta.keepAlive) {
    const toName = to.name;
    let keepLi = store.getters.getKeepAlList;
    keepLi.indexOf(toName) < 0 ? keepLi.push(toName) : &#39;&#39;;
    store.commit(&#39;SET_KEEPALLIST&#39;, keepLi);
   }
   //根据路径名深度设置转场动画类型
   store.commit(&#39;SET_TRANSNA&#39;, (to.path.split(&#39;/&#39;).length < from.path.split(&#39;/&#39;).length ? &#39;leftin&#39; : &#39;rightin&#39;));
   next();
  } else {
   let toWhere = router.nameList.indexOf(to.name) >= 0 ? to : {name: 'home'};
   next({
    name: 'login',
    params: {
     jumpTo: {
      name: toWhere.name,
      params: toWhere.params,
      query: toWhere.query,
     },
    }
   });
  }
 }
});
로그인 후 복사

관련 권장 사항:

jquery는 키보드 왼쪽 및 오른쪽 페이지 넘김 효과를 실현합니다_jquery

Vue 라우터는 jquery와 params를 사용하여 매개변수를 세부적으로 전달합니다.

Vue 라우터 라우팅 매개변수가 새로 고쳐지고 사라지는 문제에 대한 솔루션

위 내용은 왼쪽 및 오른쪽 페이지 넘기기 전환 애니메이션을 자동으로 판단하는 Vue Router 효과 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

왼쪽 오른쪽 이어폰 구별하는 방법 rl 왼쪽 오른쪽 이어폰 착용 방법 왼쪽 오른쪽 이어폰 구별하는 방법 rl 왼쪽 오른쪽 이어폰 착용 방법 Feb 22, 2024 pm 05:10 PM

L은 왼쪽을 의미하며 왼쪽 귀에 착용하고, R은 오른쪽을 의미하며 오른쪽 귀에 착용합니다. 분석 1 일반적으로 이어폰에 로고가 있는데 영문자는 L, R로 약칭한다. L은 왼쪽을 뜻하며 왼쪽 귀에 착용한다. R은 오른쪽 귀에 착용한다. R과 L로 표시된 특정 위치는 고정된 것이 아니며 특정 헤드폰을 기반으로 합니다. 일부 헤드폰에는 R이 빨간색으로 표시됩니다. 휴대폰과 함께 제공되는 헤드폰의 경우 일반적으로 마이크와 버튼이 있는 쪽이 오른쪽에 있습니다. 보충: 헤드폰의 종류 1 헤드폰은 사람들의 휴대용 오디오의 상징입니다. 헤드폰은 크게 두 가지 사양으로 나눌 수 있습니다. OMTP 사양은 일반적으로 국가 표준이라고 하며, CTIA 사양은 일반적으로 국제 표준이라고 합니다. 이어폰은 에너지 변환 방식에 따라 분류되며, 구체적으로는 다이나믹 코일 방식, 무빙 아이언 방식, 정적 방식으로 분류됩니다.

React Router 사용자 가이드: 프런트엔드 라우팅 제어 구현 방법 React Router 사용자 가이드: 프런트엔드 라우팅 제어 구현 방법 Sep 29, 2023 pm 05:45 PM

ReactRouter 사용자 가이드: 프런트엔드 라우팅 제어 구현 방법 단일 페이지 애플리케이션의 인기로 인해 프런트엔드 라우팅은 무시할 수 없는 중요한 부분이 되었습니다. React 생태계에서 가장 널리 사용되는 라우팅 라이브러리인 ReactRouter는 풍부한 기능과 사용하기 쉬운 API를 제공하여 프런트 엔드 라우팅 구현을 매우 간단하고 유연하게 만듭니다. 이 기사에서는 ReactRouter를 사용하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. ReactRouter를 먼저 설치하려면 다음이 필요합니다.

전력 소비 테스트 및 평가(rx588 전력 소비 테스트 및 평가) 전력 소비 테스트 및 평가(rx588 전력 소비 테스트 및 평가) Dec 31, 2023 pm 09:38 PM

rx588의 전력 소비는 약 250W입니다. rx580에서 영화를 보는 데는 전력이 소모되지만 그다지 많지는 않습니다. 많은 비디오를 디코딩하려면 하드웨어가 필요합니다. 그래픽 카드는 어느 정도 사용됩니다. xfx Crimson 및 Dylan Demon + 7700K 단일 카드의 플랫폼 전력 소비는 약 380w이고, 7700k는 100w로 계산되며 다른 장치를 합치면 최대 30w입니다. 즉, rx588의 전력 소비는 약 250w이고 전력 소비는 듀얼 카드 기기는 630w~650w이고 700w 이상이면 충분하지만 이때 전원 공급 장치의 부하가 너무 높아 수명에 영향을 미치며, 이상적인 전력인 60%~80%의 부하를 기준으로 계산됩니다. 공급 정격 전력은 850~1000w입니다. 사용되는 CPU와 오버클럭 여부에 따라 다릅니다. H61 마더보드는 H61 마더보드 자체가 588 그래픽 카드를 지원합니까?

단어로 페이지를 넘기는 방법 단어로 페이지를 넘기는 방법 Mar 19, 2024 pm 07:22 PM

Word는 일반적으로 사용되는 사무용 소프트웨어 중 하나입니다. 편집된 텍스트 내용이 길고 읽기 어려울 경우 Word에서 페이지를 넘길 수 있습니다. 아래에서 편집자는 Word에서 페이지를 넘기는 방법에 대한 간단한 튜토리얼을 친구들과 공유할 것입니다! 이것이 여러분에게 도움이 되기를 바랍니다! 1. 먼저 컴퓨터의 워드 소프트웨어로 여러 페이지로 구성된 워드 문서를 엽니다. 아래 그림과 같이: 2. 워드 인터페이스의 스크롤 막대에 있는 위쪽 화살표를 클릭하여 위로 스크롤하고 페이지를 넘깁니다. 아래 그림과 같이: 3. 페이지를 아래로 내려야 하는 경우 스크롤 막대의 아래쪽 화살표를 클릭합니다. 아래 그림과 같이: 4. 페이지를 넘기려면 스크롤 막대의 화살표를 클릭하세요. 스크롤 막대를 클릭하려면 마우스 오른쪽 버튼을 사용하여 페이지를 빠르게 넘겨야 합니다. 다음과 같이

JavaScript를 사용하여 무한 스크롤을 구현하는 방법은 무엇입니까? JavaScript를 사용하여 무한 스크롤을 구현하는 방법은 무엇입니까? Oct 19, 2023 am 09:57 AM

JavaScript를 사용하여 무한 스크롤 페이지 넘김 기능을 구현하는 방법은 무엇입니까? 무한 스크롤링은 현대 웹사이트 디자인에서 매우 인기가 있습니다. 이 기능을 사용하면 사용자가 페이지 버튼을 클릭하지 않고도 페이지를 스크롤하여 새 콘텐츠를 로드할 수 있습니다. 이 글에서는 JavaScript를 사용하여 무한 스크롤을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 무한 스크롤 페이지 넘기기 기능을 구현하려면 사용자 스크롤 이벤트를 수신하고 페이지가 특정 위치로 스크롤될 때 새 콘텐츠를 로드해야 합니다.

Vue Router 지연 로딩 라우팅의 고유한 장점, 페이지 성능을 최적화하는 방법은 무엇입니까? Vue Router 지연 로딩 라우팅의 고유한 장점, 페이지 성능을 최적화하는 방법은 무엇입니까? Sep 15, 2023 am 10:36 AM

VueRouter는 Vue.js에서 공식적으로 제공하는 경로 관리 플러그인으로 Vue 애플리케이션에서 페이지 탐색 및 경로 전환을 구현하는 데 도움이 됩니다. 지연 로딩 기능은 페이지 성능을 크게 최적화할 수 있는 VueRouter의 고유한 장점입니다. 이 기사에서는 VueRouter의 지연 로딩 라우팅 기능을 소개하고 페이지 성능 최적화를 위한 몇 가지 실용적인 코드 예제를 제공합니다. 지연 로딩은 필요할 때를 의미합니다.

반응 라우터가 표시되지 않으면 어떻게 해야 합니까? 반응 라우터가 표시되지 않으면 어떻게 해야 합니까? Dec 30, 2022 am 09:30 AM

라우터가 표시되지 않는 것에 대한 해결 방법: 1. 상위 라우팅 구성 요소에 browserRouter를 추가하여 라우터를 래핑합니다. 2. "this.props.history.go()"를 사용하여 구성 요소를 새로 고칩니다. 3. browserrouter 매개 변수에 "forcerefresh"를 추가합니다. ={true}"; 4. "<Route>"에 후크 함수를 작성하고 이 경로를 나가거나 들어갈 때 호출합니다.

Vue Router 지연 로딩 라우팅: 페이지 성능 향상에 도움이 되는 추세 Vue Router 지연 로딩 라우팅: 페이지 성능 향상에 도움이 되는 추세 Sep 15, 2023 am 08:03 AM

VueRouter는 Vue.js 프레임워크의 공식 경로 관리자입니다. 이를 통해 개발자는 경로 매핑을 통해 페이지 콘텐츠를 전환할 수 있으므로 단일 페이지 애플리케이션을 더 쉽게 제어하고 유지 관리할 수 있습니다. 그러나 애플리케이션이 더욱 복잡해짐에 따라 경로 로드 및 구문 분석으로 인해 성능 병목 현상이 발생할 수 있습니다. 이 문제를 해결하기 위해 VueRouter는 실제로 필요할 때까지 경로 로딩을 연기하는 경로 지연 로딩 기능을 제공합니다. 지연 로딩은 로딩 기술입니다.

See all articles