Tạo một thành phần Vue và sử dụng Lifecycle Hooks để quản lý vòng đời của nó bằng VueJs 2.
Trong bài tập này, mình sẽ tìm hiểu cách áp dụng animation và transition vào các thành phần VueJS 2. Sử dụng directives v-if hoặc v-show kết hợp với CSS, mình có thể tạo ra các hiệu ứng khi một thành phần xuất hiện hoặc biến mất.
Hãy cùng nhau tạo một thành phần Vue và thêm hiệu ứng transition hoặc animation để làm cho ứng dụng của bạn trở nên sống động hơn.
AnimationTransitionComponent.vue
<template>
<div>
<button @click="toggleAnimation">Toggle Animation</button>
<transition name="fade">
<div v-if="showComponent" class="animated-component">
<h1>Animated Component</h1>
</div>
</transition>
</div>
</template>
<script>
export default {
data() {
return {
showComponent: false,
};
},
methods: {
toggleAnimation() {
this.showComponent = !this.showComponent;
},
},
};
</script>
<style>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s ease-in-out;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}
.animated-component {
background-color: #f0f0f0;
padding: 20px;
margin-top: 20px;
border-radius: 5px; /* Bo tròn viền */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Hiển thị shadow nhẹ */
}
button {
margin-bottom: 10px;
padding: 8px 12px;
border: none;
background-color: #3498db;
color: white;
border-radius: 3px;
cursor: pointer;
transition: background-color 0.3s ease-in-out; /* Hiệu ứng khi hover */
}
button:hover {
background-color: #2980b9;
}
</style>
main.js
import Vue from 'vue';
import App from './App.vue';
new Vue({
render: (h) => h(App),
}).$mount('#app');
index.html
<!DOCTYPE html>
<html>
<head>
<title>Vue Animation/Transition</title>
<style>
/* Add global styles if needed */
</style>
</head>
<body>
<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="main.js"></script>
</body>
</html>
Trong AnimationTransitionComponent.vue, mình sử dụng <transition> để bao bọc một phần tử có thể xuất hiện hoặc biến mất. Khi showComponent được thay đổi, phần tử này sẽ hiển thị hoặc ẩn đi với hiệu ứng fade (có thể thay đổi tên theo ý muốn).
Trong phần <style>, các lớp fade-enter-active, fade-leave-active, fade-enter, và fade-leave-to định nghĩa hiệu ứng transition/animation.
Giải thích:
fade-enter-activevàfade-leave-active: Định nghĩatransition (hoặc animation)vớitransitiontrong CSS.fade-entervàfade-leave-to: Định nghĩa trạng thái xuất hiện (enter) và biến mất (leave) của phần tử..animated-component: Một số styles cho phần tử chứa animation.
Chạy file index.html và bạn sẽ thấy thành phần được hiển thị và ẩn đi với hiệu ứng transition/animation.

Hy vọng bài viết này đã giúp bạn hiểu cách sử dụng animation và transition trong VueJS 2 để tạo ra trải nghiệm người dùng thú vị hơn. Bằng cách sử dụng các directives v-if hoặc v-show kết hợp với CSS, bạn có thể thêm các hiệu ứng mượt mà và thú vị vào các thành phần Vue của mình. Đừng ngần ngại thử nghiệm và tùy chỉnh để tạo ra các hiệu ứng phong phú và độc đáo hơn cho ứng dụng của bạn!
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo một thành phần Vue đơn giản để hiển thị một đoạn văn bản bằng VueJS 2.
- Tạo hai thành phần: một thành phần cha và một thành phần con bằng VueJS 2.
- Tạo một thành phần sử dụng slots để chứa nội dung mà người dùng có thể truyền vào từ bên ngoài bằng VueJS 2.
- Tạo một danh sách các thành phần Vue và hiển thị chúng trên trang web bằng VueJS 2.
- Tạo hai thành phần có thể tương tác với nhau bằng VueJS 2
- Tạo một thành phần sử dụng một thư viện ngoài như Vuex hoặc Vue Router trong VueJS 2.
- Tạo một thành phần Vue và sử dụng Lifecycle Hooks để quản lý vòng đời của nó bằng VueJs 2.
- Tạo một thành phần Vue để hiển thị một form và xử lý dữ liệu được nhập vào form bằng VueJS 2.

Các hàm xử lý chuỗi trong Javascript (cắt / tách / nối chuỗi ..)
Chia lấy phần dư / chia lấy phần nguyên trong javascript
Các cách khai báo biến trong Javascript
Các sự kiện (Event) trong Javascript
Hướng tạo thanh search bar bằng CSS
Hàm array.slice() trong Javascript
Tính tổng hai số bằng Javascript (cộng hai số)
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng