- vừa được xem lúc

Từ Vue 2 đến Vue 3: Những Thay Đổi Quan Trọng Bạn Cần Biết

0 0 5

Người đăng: son vu

Theo Viblo Asia

Vue.js là một trong những framework JavaScript phổ biến nhất hiện nay, được yêu thích bởi tính đơn giản và linh hoạt. Với sự ra mắt của Vue 3, cộng đồng phát triển đã chứng kiến một bước tiến lớn về hiệu năng, khả năng tổ chức mã, và khả năng mở rộng ứng dụng. Trong bài viết này, chúng ta sẽ cùng khám phá những thay đổi đáng chú ý nhất khi chuyển từ Vue 2 lên Vue 3.

1. Thành phần cốt lõi: Composition API vs Options API

Vue 2: Options API Vue 2 sử dụng data, methods, computed, watch để tổ chức logic theo từng khối:

export default { data() { return { count: 0 }; }, methods: { increment() { this.count++; } }
}

Vue 3: Composition API (mới) Composition API giúp tái sử dụng logic dễ dàng hơn, đặc biệt trong các component lớn hoặc phức tạp.

import { ref } from 'vue'; export default { setup() { const count = ref(0); const increment = () => count.value++; return { count, increment }; }
}

Lợi ích: Tái sử dụng logic dễ dàng, tốt hơn khi sử dụng TypeScript, và hỗ trợ tốt hơn cho IDE & trình phân tích mã.

2. Hiệu năng: Vue 3 nhanh hơn

Vue 3 được viết lại bằng TypeScript từ đầu và mang lại nhiều cải tiến về hiệu năng:

  • Hiệu quả bộ nhớ tốt hơn
  • Thời gian render nhanh hơn
  • Tree-shaking tốt hơn, giúp giảm kích thước bundle

Theo benchmark của Vue team, Vue 3 nhanh hơn Vue 2 từ 1.2 đến 2 lần trong nhiều trường hợp.

3. Fragment, Teleport và Suspense

Fragment

Vue 3 cho phép một component có nhiều root element mà không cần thẻ wrapper:

<!-- Vue 2: lỗi -->
<template> <h1>Title</h1> <p>Description</p>
</template> <!-- Vue 3: hợp lệ -->

Teleport Cho phép render nội dung vào một phần tử DOM bên ngoài root component (ví dụ: modal):

<teleport to="#modals"> <div class="modal">Modal content</div>
</teleport>

Suspense Hỗ trợ xử lý component async với fallback:

<suspense> <template #default> <AsyncComponent /> </template> <template #fallback> <LoadingSpinner /> </template>
</suspense>

4. API thay đổi & những điểm cần chú ý

Tính năng Vue 2 Vue 3
Global API Vue.use(), Vue.component() app.use(), app.component()
Filters HỖ TRỢ Bị loại bỏ (dùng computed/methods thay thế)
this.$on, $off, $once HỖ TRỢ Bị loại bỏ (sử dụng emits)
Mixins HỖ TRỢ Hạn chế khuyến khích (dùng Composition API)

5. TypeScript Support: Mạnh mẽ hơn

Vue 3 được viết hoàn toàn bằng TypeScript, cung cấp typing rõ ràng hơn, đặc biệt khi dùng Composition API. Điều này giúp:

  • IDE hỗ trợ tốt hơn
  • Phát hiện lỗi sớm
  • Dễ refactor và mở rộng mã

6. Tổng kết

Vue 2 Vue 3
Dễ học, đơn giản Mạnh mẽ, mở rộng tốt hơn
Options API Composition API (có thể chọn)
Hiệu năng tốt Hiệu năng vượt trội
Một số giới hạn trong cấu trúc component Hỗ trợ Fragment, Suspense, Teleport

Vue 3 là một bước tiến lớn, giữ lại sự dễ dùng của Vue 2 nhưng bổ sung những tính năng mạnh mẽ hơn, hiện đại hơn. Nếu bạn đang bắt đầu dự án mới, nên dùng Vue 3 ngay từ đầu. Nếu bạn đang bảo trì Vue 2, việc nâng cấp dần dần cũng rất khả thi.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Ví dụ CRUD với Laravel và Vuejs.

1. Cài đặt Laravel. composer create-project --prefer-dist laravel/laravel vuelaravelcrud. .

0 0 176

- vừa được xem lúc

Bài 1: Cài đặt Vue và chạy chương trình Hello world đầu tiên

Ở bài đầu tiên này mình sẽ hướng dẫn các bài cài đặt VueJS vào project Laravel, sau đó chúng ta sẽ cùng xem những thứ cơ bản của Vue nhé. Vì Laravel đã hỗ trợ tích hợp VueJS nên việc cài đặt của chúng ta sẽ hết sức đơn giản.

0 0 154

- vừa được xem lúc

Lazy loading and code splitting in Vue.js

Việc giữ cho ứng dụng của bạn tải nhanh ngày càng khó hơn. Trong loạt bài này, tôi sẽ đi sâu vào các kỹ thuật tối ưu hiệu suất Vue và bạn có thể sử dụng trong các ứng dụng Vue.

0 0 127

- vừa được xem lúc

Validating Vue.js Forms Using Vuelidate

Introduction. Validate thông tin đầu vào trên các ứng dụng web là rất quan trọng.

0 0 231

- vừa được xem lúc

5 Good Practices mình đang sử dụng trong Vuejs

Mở đầu. Mình đã sử dụng vuejs được cũng được 1 năm trở lại đây.

0 0 120

- vừa được xem lúc

[P5] VueJS - Một vài Interpolations khác trong Vue

Ở bài viết trước, mình đã nói về một vài keyword trong Vue như v-if, v-else, v-show, v-for, ... Chúng thực chất là các syntax đặc biệt của Vue để thao tác linh hoạt với các DOM ảo, được gọi là Interpolations. Ngoài ra, Vue còn các Interpolations khác. Mục đích của nó thì đã quá rõ ràng, hiển thị tex

0 0 73