Câu hỏi phỏng vấn Vue.js
Câu hỏi

Tại sao component data phải là một function?

Câu trả lời

Trong Vue.js, mỗi khi bạn định nghĩa một component, thuộc tính data phải là một hàm (function) chứ không phải là một đối tượng trực tiếp. Điều này là bắt buộc vì mỗi instance của component cần phải có một bản sao riêng biệt của đối tượng data để tránh chia sẻ trạng thái giữa các instance, điều này có thể dẫn đến các vấn đề không mong muốn trong ứng dụng.

Khi bạn sử dụng một đối tượng trực tiếp cho data, tất cả các instance của component sẽ chia sẻ cùng một đối tượng data. Điều này có nghĩa là bất kỳ thay đổi nào trên một instance sẽ ảnh hưởng đến tất cả các instance khác, vì chúng đều tham chiếu đến cùng một đối tượng data.

Khi data được định nghĩa như một hàm, Vue.js sẽ gọi hàm này mỗi khi cần tạo một instance mới của component, và từ đó mỗi instance sẽ có bản sao riêng biệt của đối tượng data được trả về từ hàm. Điều này đảm bảo rằng mỗi instance có trạng thái riêng biệt và không ảnh hưởng lẫn nhau.

Ví dụ về cách sử dụng data như một hàm trong một component Vue.js:

javascript Copy
Vue.component('my-component', {
  data: function () {
    return {
      counter: 0,
    };
  },
});

Trong ví dụ trên, mỗi khi my-component được sử dụng, một bản sao mới của đối tượng data với counter được khởi tạo là 0 sẽ được tạo ra cho mỗi instance của my-component. Điều này giúp mỗi instance duy trì trạng thái độc lập của nó.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

So sánh vuexpinia?

junior

Liệt kê các loại Directives có sẵn trong Vuejs?

middle

Các yếu tố cần thiết nhất trong State Management Pattern trong Vuejs là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào