Có gì mới?

Chào mừng bạn đến với diễn đàn Tui Học Web

Vui lòng đăng ký hoặc đăng nhập để sử dụng hết các tính năng của forum nhé!
  • Thông báo: Hiện tại do admin không có nhiều thời gian và không thể tiếp tục quản trị và maintain forum, do đó forum sẽ có dự định được đóng lại từ 06/2022, cảm ơn mọi người đã đồng hành cùng forum suốt thời gian vừa qua. Cảm ơn rất nhiều.

Kiến thức Ngày 05 - Vòng đời của một đối tượng trong Vuejs

Kiến thức
Tình trạng
Không mở trả lời sau này.

Vòng đời của đối tượng​

Khi được khởi tạo, một đối tượng Vue sẽ đi qua nhiều bước khác nhau - cài đặt quan sát dữ liệu (data observation), biên dịch template, gắn kết vào DOM, cập nhật DOM khi dữ liệu thay đổi v.v. Trong suốt tiến trình này, nó cũng sẽ thực thi một số hàm gọi là lifecycle hook, giúp người dùng thêm code của mình vào các giai đoạn (stage) cụ thể trong vòng đời của đối tượng.

Ví dụ, hook created có thể được dùng để thực thi code sau khi một đối tượng được khởi tạo:

JavaScript:
new Vue({
    data: {
        a: 1
    },
    created: function() {
        // `this` trỏ đến đối tượng Vue hiện hành
        console.log('giá trị của a là ' + this.a)
    }
})
// => "giá trị của a là 1"

Các hook khác như mounted, updated, và destroyed cũng được gọi vào các giai đoạn khác nhau trong vòng đời của đối tượng. Tất cả các hook này đều được thực thi với ngữ cảnh this trỏ đến đối tượng Vue hiện hành.

Lưu ý nhỏ cho bạn:
Đừng dùng hàm mũi tên (arrow functions) cho các thuộc tính tùy chọn hoặc callback như là created: () => console.log(this.a) hoặc vm.$watch('a', newValue => this.myMethod()). Vì hàm mũi tên được bind vào ngữ cảnh cha (parent context), this sẽ không trỏ đến đối tượng Vue hiện hành. Do vậy this.a hoặc this.myMethod sẽ không trả về giá trị mà bạn mong đợi, mà thay vào đó thường là các lỗi Uncaught TypeError: Cannot read property of undefined hoặc Uncaught TypeError: this.myMethod is not a function.

Sơ đồ vòng đời​

1540353471_lifecycle1.png
 
Tình trạng
Không mở trả lời sau này.

Bài viết và chủ đề liên quan

shape1
shape2
shape3
shape4
shape7
shape8
Bên trên