Vue에서 애니메이션 전환 효과를 얻기 위해 전환 후크 기능을 사용하는 방법

王林
풀어 주다: 2023-06-11 09:18:39
원래의
1304명이 탐색했습니다.

최근 몇 년 동안 프런트엔드 기술은 점점 더 빠르게 발전해 왔으며 Vue 프레임워크는 웹 개발에서 가장 인기 있는 프런트엔드 프레임워크 중 하나가 되었습니다. Vue 프레임워크는 강력하고 유연한 애니메이션 효과를 제공하여 웹 인터페이스를 더욱 생생하고 매력적으로 만들어 사용자 경험을 향상시킵니다. 애니메이션 전환 효과를 얻기 위해 Vue의 전환 후크 기능을 사용하는 것은 일반적인 방법 중 하나입니다.

  1. 전환 후크 기능이란 무엇인가요?

Vue는 CSS 전환이 아닌 동적 클래스 이름과 JS 후크 기능의 조합을 통해 전환을 처리합니다. Vue는 "입력 전", "입력", "입력 후", "입력 취소", "출발 전" 및 "출발"이라는 6가지 후크 기능을 제공합니다.

  1. 전환 후크 기능 사용 방법

요소가 DOM에 들어오거나 나갈 때 전환 상태가 트리거됩니다. 이때 해당 후크 기능을 사용하여 전환 효과를 정의할 수 있습니다. Vue 구성 요소의 "transition" 태그를 통해 이 효과를 얻을 수 있습니다.

예를 들어, 사용자 정의 구성 요소에서 "transition" 태그를 사용하여 간단한 페이드 아웃 효과를 구현할 수 있습니다.

<template>
  <div v-show="show" class="fade">
    <p>{{text}}</p>
    <button @click="show = false">关闭</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: false,
      text: '这是一个淡出效果'
    }
  }
}
</script>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity .5s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>
로그인 후 복사

위 예에서는 "fade"라는 클래스를 정의하고 진입 시 전환 상태를 정의했습니다. 각각 출발합니다. 그런 다음 Vue 구성 요소의 "v-show" 지시문을 사용하여 구성 요소 표시 및 숨기기를 트리거합니다.

구성 요소 표시 및 숨기기가 트리거되면 Vue는 자동으로 해당 클래스 이름을 추가하여 페이드 아웃 효과를 얻습니다. 이 시점에서는 "style" 태그에 해당 전환 상태만 정의하면 됩니다.

  1. 전환 후크 함수의 매개변수

후크 함수의 매개변수는 4개가 포함됩니다. "before-enter" 및 "before-leave" 함수에는 약 DOM 요소를 나타내는 매개변수가 하나만 있습니다. 4개의 후크 함수에는 각각 두 개의 매개변수가 있습니다.

  • el: 삽입된 DOM 요소를 나타냅니다.
  • done: 특정 작업을 수행하는 데 사용할 수 있는 전환이 완료된 후의 콜백 함수를 나타냅니다.

다음으로 전환 후크 기능의 구체적인 사용을 보여주는 완전한 예를 제공합니다.

<template>
  <div>
    <button @click="show = !show">{{ show ? 'Hide' : 'Show' }}</button>
    <transition
      @before-enter="beforeEnter"
      @enter="enter"
      @after-enter="afterEnter"
      @enter-cancelled="enterCancelled"

      @before-leave="beforeLeave"
      @leave="leave"
      @after-leave="afterLeave"
      @leave-cancelled="leaveCancelled"
    >
      <div v-show="show" class="box"></div>
    </transition>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: false,
    };
  },

  methods: {
    beforeEnter: function(el) {
      el.style.opacity = 0;  // 设置元素开始状态
    },
    enter: function(el, done) {
      Vue.nextTick(() => {
        el.style.transition = 'opacity .5s';
        el.style.opacity = 1;    // 设置元素过渡状态
      });
      el.addEventListener('transitionend', done);
    },
    afterEnter: function(el) {
      el.style.transition = null;  // 设置元素结束状态
    },
    enterCancelled: function(el) {
      el.style.transition = null;  // 过渡取消时的回调函数
    },
    beforeLeave: function(el) {
      el.style.opacity = 1;  // 设置元素开始状态
    },
    leave: function(el, done) {
      Vue.nextTick(() => {          
        el.style.transition = 'opacity .5s';
        el.style.opacity = 0;  // 设置元素过渡状态
      });
      el.addEventListener('transitionend', done);
    },
    afterLeave: function(el) {
      el.style.transition = null;  // 设置元素结束状态
    },
    leaveCancelled: function(el) {
      el.style.transition = null;  // 过渡取消时的回调函数
    },
  },
};
</script>

<style>
.box {
  width: 200px;
  height: 200px;
  background-color: lightblue;
}
</style>
로그인 후 복사

위의 예에서는 구성 요소가 들어오고 나갈 때 서로 다른 상태에 해당하는 8개의 전환 후크 함수를 정의했습니다. 들어오고 나가는 특정 전환 효과는 후크 기능에 의해 제어됩니다.

컴포넌트에 들어갈 때 "before-enter" 후크 함수는 요소의 시작 상태를 설정하고 "enter" 후크 함수는 요소의 전환을 설정한 다음 "transitionend"를 통해 "done" 콜백 함수를 바인딩합니다. " 이벤트를 통해 전환을 완료합니다.

구성 요소를 떠날 때와 마찬가지로 "before-leave" 함수는 먼저 요소의 시작 상태를 설정한 다음 "leave" 후크 함수는 떠나기의 전환 상태를 설정하고 "done" 콜백 함수를 " Transitionend' 이벤트를 통해 출발 전환을 완료합니다.

  1. 요약

Vue에서는 "transition" 태그를 사용하여 다양한 전환 효과를 얻을 수 있으며, 6가지 후크 기능을 통해 다양한 전환 상태를 정의할 수 있습니다. 트랜지션 훅 기능의 사용은 마스터해야 할 핵심 포인트 중 하나입니다. 후크 기능을 통해 전환 효과를 구현하면 구성 요소의 전환 상태를 보다 유연하게 제어할 수 있으므로 웹 애플리케이션의 사용자 경험이 향상되고 더욱 생생하고 매력적인 효과를 얻을 수 있습니다.

위 내용은 Vue에서 애니메이션 전환 효과를 얻기 위해 전환 후크 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿