목차
프로젝트에 Vue 경로 전환 추가
每个 Route 都有不同的过渡
1 – Fade Vue Router Transitions
2 – Slide Vue Router Transitions
3 – Scale Vue Router Transitions
4 – Combining Vue Router Transitions
웹 프론트엔드 View.js 4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

May 06, 2021 pm 06:38 PM
vue.js

이 글에서는 매우 멋진 Veu 라우팅 전환 효과 4가지를 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

Vue 라우터 전환은 Vue 애플리케이션에 개성을 추가하는 빠르고 쉬운 방법입니다. 이를 통해 애플리케이션의 여러 페이지 간에 부드러운 애니메이션/전환 효과를 추가할 수 있습니다.

올바르게 사용하면 애플리케이션을 더욱 현대적이고 전문적으로 만들어 사용자 경험을 향상시킬 수 있습니다.

오늘 기사에서는 Vue Router를 사용한 전환의 기본 사항을 소개한 다음 몇 가지 기본 예를 소개하여 여러분에게 영감을 드리고자 합니다.

다음은 우리가 만들 4개의 전환 페이지입니다.

4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

프로젝트에 Vue 경로 전환 추가

일반적으로 Vue 라우터 설정은 다음과 같습니다

// default template
<template>
  <router-view />
</template>
로그인 후 복사

이전 버전의 Vue Router에서는 간단히 <transition> code>구성요소 래퍼 <code><router-view>. <transition>组件包装<router-view>

然而,在Vue Router的新版本中,我们必须使用v-slot来解构我们的 props ,并将它们传递到我们的内部插槽。这个slow包含一个被transition包围的动态组件。

<router-view v-slot="{ Component }">
  <transition>
    <component :is="Component" />
  </transition>
</router-view>
로그인 후 복사

每个 Route 都有不同的过渡

默认情况下,用<transition>包装<component>将在我们使用的每条路由上添加相同的过渡。

有两种不同的方法可以为每个路由定制转场。

将过 transition 移到各个组件部分

首先,我们可以将<transition>移到每个单独的组件中,而不是用<transition>组件来包装我们的动态组件。 如下:

// app.vue
<template>
  <transition>
    <div class="wrapper">
      <!-- -->
    </div>
  </transition>
</template>
로그인 후 복사

对于我们想要每个路由都有一个过渡效果,通过这种方式,我们可以通过过渡的名称来定制每个路由。

使用 v-bind 的动态过渡

另一种方法是将过渡的名称绑定到一个变量。然后,我们可以根据监听路由动态地改变这个变量。

<transition :name="transitionName">
  <component :is="Component" />
</transition>
로그인 후 복사
watch: {
  &#39;$route&#39; (to, from) {
    const toDepth = to.path.split(&#39;/&#39;).length
    const fromDepth = from.path.split(&#39;/&#39;).length
    this.transitionName = toDepth < fromDepth ? &#39;slide-right&#39; : &#39;slide-left&#39;
  }
}
로그인 후 복사

现在,我们了解了Vue Router Transition 的基础知识,下面我们来看一些 Nice 的示例。

1 – Fade Vue Router Transitions

添渐隐页面过渡可能是我们可以添加到Vue应用程序中最常用的动效之一。

我们可以通过更改元素的opacity 来实现此效果。

首先,我们创建一个带有fade名称的 Vue Router transition。 还要注意的另一件事是,我们将过渡模式设置为 out-in

有三种不同的过渡模式:

  • default – 进入和离开过渡同时发生
  • in-out – 新元素的过渡先进入。然后,当前元素过渡出去。
  • out-in - 当前元素先过渡出去。然后,新元素过渡进来。

为了让新元素平滑地淡入,我们需要在开始新的过渡之前删除当前元素。所以我们使用 mode="out-in"

<transition>为我们提供了几个CSS类,它们在动画周期中被动态添加/删除。

有6个不同的过渡类(3个用于进入,3个用于离开)。

  • v-enter-from:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。

  • v-leave-from:定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。

  • v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

  • v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

  • v-enter-to:定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter-from 被移除),在过渡/动画完成之后移除。

  • v-leave-to:离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave-from

    그러나 새 버전의 Vue Router에서는 v-slot을 사용하여 props를 분해하고 이를 내부 슬롯에 전달해야 합니다. 이 느린에는 전환으로 둘러싸인 동적 구성요소가 포함되어 있습니다. 🎜
    // fade styles!
    .fade-enter-active,
    .fade-leave-active {
      transition: opacity 0.5s ease;
    }
    
    
    .fade-enter-from,
    .fade-leave-to {
      opacity: 0;
    }
    로그인 후 복사
    로그인 후 복사

    각 경로에는 서로 다른 전환이 있습니다. 🎜🎜기본적으로 <transition>로 래핑하면 우리가 사용하는 모든 경로에 동일한 전환을 추가하세요. 🎜🎜각 경로에 대한 전환을 사용자 정의하는 두 가지 방법이 있습니다. 🎜🎜🎜각 컴포넌트 파트로 전환 이동🎜🎜🎜우선 <transition>< /code> 컴포넌트를 사용하는 대신 <transition>을 각 개별 컴포넌트로 이동할 수 있습니다. 동적 구성요소를 래핑합니다. 다음과 같습니다: 🎜
    // slide transition
    <router-view v-slot="{ Component }">
      <transition name="slide">
        <component :is="Component" />
      </transition>
    </router-view>
    로그인 후 복사
    로그인 후 복사
    🎜전환 효과를 적용하려는 각 경로에 대해 이 방법으로 전환 이름으로 각 경로를 사용자 정의할 수 있습니다. 🎜🎜🎜v-bind를 사용한 동적 전환 🎜🎜🎜또 다른 접근 방식은 전환 이름을 변수에 바인딩하는 것입니다. 그런 다음 청취 경로에 따라 이 변수를 동적으로 변경할 수 있습니다. 🎜
    // component wrapper
    .wrapper {
      width: 100%;
      min-height: 100vh;
    }
    로그인 후 복사
    로그인 후 복사
    // slide styles!
    .slide-enter-active,
    .slide-leave-active {
      transition: all 0.75s ease-out;
    }
    
    
    .slide-enter-to {
      position: absolute;
      right: 0;
    }
    
    
    .slide-enter-from {
      position: absolute;
      right: -100%;
    }
    
    
    .slide-leave-to {
      position: absolute;
      left: -100%;
    }
    
    
    .slide-leave-from {
      position: absolute;
      left: 0;
    }
    로그인 후 복사
    로그인 후 복사
    🎜이제 Vue 라우터 전환의 기본 사항을 이해했으므로 몇 가지 좋은 예를 살펴보겠습니다. 🎜

    🎜1 – 페이드 Vue 라우터 전환🎜🎜🎜페이드 페이지 전환은 아마도 Vue 애플리케이션에 추가할 수 있는 가장 일반적으로 사용되는 애니메이션 중 하나일 것입니다. 🎜🎜요소의 불투명도를 변경하여 이 효과를 얻을 수 있습니다. 🎜🎜먼저 fade 이름으로 Vue Router 전환을 만듭니다. 주목해야 할 또 다른 점은 전환 모드를 out-in으로 설정했다는 것입니다. 🎜🎜세 가지 전환 모드가 있습니다: 🎜
    • 기본값 – 진입 및 퇴장 전환이 동시에 발생합니다.
    • in-out – 신규 원소 전환이 먼저 들어갑니다. 그런 다음 현재 요소가 전환됩니다.
    • out-in - 현재 요소가 먼저 전환됩니다. 그런 다음 새로운 요소가 전환됩니다.
    🎜새 요소가 원활하게 페이드 인되도록 하려면 새 전환을 시작하기 전에 현재 요소를 삭제해야 합니다. 그래서 mode="out-in"을 사용합니다. 🎜🎜<transition>은 애니메이션 주기 동안 동적으로 추가/제거되는 여러 CSS 클래스를 제공합니다. 🎜🎜6개의 전환 수업이 있습니다(3개 입학, 3개 퇴사). 🎜
    • 🎜v-enter-from: 항목 전환의 시작 상태를 정의합니다. 요소가 삽입되기 전에 적용되며 요소가 삽입된 후 다음 프레임에서 제거됩니다. 🎜
    • 🎜v-leave-from: 떠나기 전환의 시작 상태를 정의합니다. 이탈 전환이 트리거되면 즉시 적용되며 다음 프레임에서 제거됩니다. 🎜
    • 🎜v-enter-active: 항목 전환이 적용될 때의 상태를 정의합니다. 전환 전체에 적용되고 요소가 삽입되기 전에 적용되며 전환/애니메이션이 완료된 후에 제거됩니다. 이 클래스는 전환 입력을 위한 처리 시간, 지연 및 곡선 기능을 정의하는 데 사용할 수 있습니다. 🎜
    • 🎜v-leave-active: 나가기 전환이 적용될 때의 상태를 정의합니다. 종료 전환 전체에 적용되고, 종료 전환이 트리거될 때 즉시 적용되며, 전환/애니메이션이 완료된 후 제거됩니다. 이 클래스는 출구 전환에 대한 처리 시간, 지연 및 곡선 기능을 정의하는 데 사용할 수 있습니다. 🎜
    • 🎜v-enter-to: 항목 전환의 최종 상태를 정의합니다. 요소가 삽입된 후(동시에 v-enter-from가 제거됨) 다음 프레임에 적용되며 전환/애니메이션이 완료된 후 제거됩니다. 🎜
    • 🎜v-leave-to: 전환 종료의 최종 상태입니다. 이탈 전환이 트리거된 후(동시에 v-leave-from가 제거됨) 다음 프레임에 적용되며 전환/애니메이션이 완료된 후에 제거됩니다. 🎜

    注意:当我们为过渡提供一个name属性时,这是默认名称。类的格式是name-enter-fromname-enter-active,等等。

    我们希望进入和离开状态的opacity 为0。然后,当我们的过渡处生效状态时,对 opacity 进行动画的处理。

    // fade styles!
    .fade-enter-active,
    .fade-leave-active {
      transition: opacity 0.5s ease;
    }
    
    
    .fade-enter-from,
    .fade-leave-to {
      opacity: 0;
    }
    로그인 후 복사
    로그인 후 복사

    最后的效果 :

    4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

    2 – Slide Vue Router Transitions

    我们要构建的下一个过渡是幻灯片过渡。

    模板如下所示。 由于我们希望进入和离开过渡同时发生,因此使用默认模式即可。

    // slide transition
    <router-view v-slot="{ Component }">
      <transition name="slide">
        <component :is="Component" />
      </transition>
    </router-view>
    로그인 후 복사
    로그인 후 복사

    为了让例子更好看,我们给每个页面加上下面的样式:

    // component wrapper
    .wrapper {
      width: 100%;
      min-height: 100vh;
    }
    로그인 후 복사
    로그인 후 복사

    最后,在过渡样式里为要滑动的组件设置相关的属性。如果需要不同的滑动方向,只需更改CSS属性(top, bottom, left, right)。

    // slide styles!
    .slide-enter-active,
    .slide-leave-active {
      transition: all 0.75s ease-out;
    }
    
    
    .slide-enter-to {
      position: absolute;
      right: 0;
    }
    
    
    .slide-enter-from {
      position: absolute;
      right: -100%;
    }
    
    
    .slide-leave-to {
      position: absolute;
      left: -100%;
    }
    
    
    .slide-leave-from {
      position: absolute;
      left: 0;
    }
    로그인 후 복사
    로그인 후 복사

    最终的效果:

    4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

    3 – Scale Vue Router Transitions

    创建缩放过渡与我们的淡入过渡非常相似。 我们再次将模式设置为 out-in,以便我们可以确保动画的正确顺序。

    // scale transition!
    
    <router-view v-slot="{ Component }">
      <transition name="scale" mode="out-in">
        <component :is="Component" />
      </transition>
    </router-view>
    로그인 후 복사
    .scale-enter-active,
    .scale-leave-active {
      transition: all 0.5s ease;
    }
    
    
    .scale-enter-from,
    .scale-leave-to {
      opacity: 0;
      transform: scale(0.9);
    }
    로그인 후 복사

    这里给整个网页提供黑色的背景色会让过渡看上去更干净。

    4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

    4 – Combining Vue Router Transitions

    创建过渡的方式有很多很多但是,我认为不要过度过的,刻意的去做过渡。 过渡动效应该是很小的,微妙的增强功能,而不是会让应用产生干扰因素。

    我认为实现较好过渡是将一些更基础的过渡结合在一起。

    例如,让我们将幻灯片放大和缩小合并为一个过渡。

    <router-view v-slot="{ Component }">
      <transition name="scale-slide">
        <component :is="Component" />
      </transition>
    </router-view>
    로그인 후 복사
    .scale-slide-enter-active,
    .scale-slide-leave-active {
      position: absolute;
      transition: all 0.85s ease;
    }
    
    
    .scale-slide-enter-from {
      left: -100%;
    }
    
    
    .scale-slide-enter-to {
      left: 0%;
    }
    
    
    .scale-slide-leave-from {
      transform: scale(1);
    }
    
    
    .scale-slide-leave-to {
      transform: scale(0.8);
    }
    로그인 후 복사

    4개의 매우 멋진 Vue Router 전환 효과를 가지고 오셔서 수집해 보세요!

    原文地址:https://learnue.co/2021/01/4-awesome-of-vue-router-transitions/

    作者:Ahmad shaded

    译文地址:https://segmentfault.com/a/1190000039802609

    更多编程相关知识,请访问:编程视频!!

    위 내용은 4개의 매우 멋진 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

vite가 .env 파일을 구문 분석하는 방법에 대한 심층 토론 vite가 .env 파일을 구문 분석하는 방법에 대한 심층 토론 Jan 24, 2023 am 05:30 AM

Vue 프레임워크를 사용하여 프런트엔드 프로젝트를 개발할 때 배포 시 여러 환경을 배포하게 되는데, 개발 환경, 테스트 환경, 온라인 환경에서 호출되는 인터페이스 도메인 이름이 다른 경우가 많습니다. 어떻게 구별할 수 있나요? 그것은 환경 변수와 패턴을 사용하는 것입니다.

Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Apr 24, 2023 am 10:52 AM

Ace는 JavaScript로 작성된 내장형 코드 편집기입니다. Sublime, Vim 및 TextMate와 같은 기본 편집기의 기능 및 성능과 일치합니다. 모든 웹페이지와 JavaScript 애플리케이션에 쉽게 삽입할 수 있습니다. Ace는 Cloud9 IDE의 메인 편집자로 유지되며 Mozilla Skywriter(Bespin) 프로젝트의 후속 버전입니다.

vue에서 구성 요소화와 모듈화의 차이점은 무엇입니까 vue에서 구성 요소화와 모듈화의 차이점은 무엇입니까 Dec 15, 2022 pm 12:54 PM

구성요소화와 모듈화의 차이점: 모듈화는 코드 논리의 관점에서 구분되며, 코드 계층 개발을 용이하게 하고 각 기능 모듈의 기능이 일관되게 유지되도록 합니다. 컴포넌트화는 UI 인터페이스 관점에서 계획하는 것으로 프런트엔드의 컴포넌트화는 UI 컴포넌트의 재사용을 용이하게 합니다.

vue3의 반응성()에 대해 자세히 이야기해 봅시다. vue3의 반응성()에 대해 자세히 이야기해 봅시다. Jan 06, 2023 pm 09:21 PM

서문: vue3 개발에서 반응형은 반응형 데이터를 구현하는 방법을 제공합니다. 일상적인 개발에서 자주 사용되는 API입니다. 이 기사에서 저자는 내부 작동 메커니즘을 탐구합니다.

Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Apr 25, 2023 pm 07:41 PM

Vue.js는 오늘날 프런트엔드 개발에서 매우 인기 있는 프레임워크가 되었습니다. Vue.js가 계속 발전함에 따라 단위 테스트는 점점 더 중요해지고 있습니다. 오늘은 Vue.js 3에서 단위 테스트를 작성하는 방법을 살펴보고 몇 가지 모범 사례와 일반적인 문제 및 솔루션을 제공하겠습니다.

Vue3 동적 구성 요소에서 예외를 처리하는 방법에 대한 간략한 분석 Vue3 동적 구성 요소에서 예외를 처리하는 방법에 대한 간략한 분석 Dec 02, 2022 pm 09:11 PM

Vue3 동적 구성 요소에서 예외를 처리하는 방법은 무엇입니까? 다음 기사에서는 Vue3 동적 구성 요소 예외 처리 방법에 대해 설명합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

Vue의 JSX 구문과 템플릿 구문의 간단한 비교(장단점 분석) Vue의 JSX 구문과 템플릿 구문의 간단한 비교(장단점 분석) Mar 23, 2023 pm 07:53 PM

Vue.js에서 개발자는 JSX 구문과 템플릿 구문이라는 두 가지 다른 구문을 사용하여 사용자 인터페이스를 만들 수 있습니다. 두 구문 모두 장점과 단점이 있습니다. 차이점, 장점 및 단점을 논의해 보겠습니다.

vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 Mar 24, 2023 pm 07:40 PM

실제 개발 프로젝트 프로세스에서는 상대적으로 큰 파일을 업로드해야 하는 경우가 있는데, 그러면 업로드가 상대적으로 느려지므로 백그라운드에서 파일 조각을 업로드하려면 매우 간단합니다. 기가바이트 파일 스트림이 여러 개의 작은 파일 스트림으로 절단된 다음 인터페이스는 작은 파일 스트림을 각각 전달하도록 요청됩니다.

See all articles