Yêu cầu thg 8 12, 2022 1:24 SA 116 0 1
  • 116 0 1
+2

Truyền dữ liệu từ component Con lên component Cha không cần dùng emit trong Vue 3

Chia sẻ
  • 116 0 1

Chào mọi người !!!

Mình có một thắc mắc là mình muốn truyển dữ liệu thì component con lên compent cha mà hiện tại trên docs của vue thì nó bảo chúng ta dùng emit.

Yeah cách này mình không nói

Mình cũng thứ áp dụng thì theo cách truyền props(kiểu như react) thì vẫn được - truyển props là 1 function rồi dưới còn gọi function đó

Mình muốn hỏi thì cái emit với props này khác nhau như thế nào ?

Mình có thể chọn 1 trong 2 để làm hay bắt buộc dùng emit hay emit có gì đó đặc biệt hơn không ạ?

Cảm on mọi người

1 CÂU TRẢ LỜI


Đã trả lời thg 8 12, 2022 3:10 SA
Đã được chấp nhận
+1

Câu hỏi này khá hay 👍 Trước giờ mình làm việc với công nghệ nào thì toàn mặc định follow theo docs của họ mà ít khi đặt câu hỏi tại sao, có lẽ do mindset của mình là ông tác giả viết ra framework/library nào thì họ đã nắm rõ bản chất, nguyên tắc để làm việc với đứa con của họ hơn 😅

Anyway, trên stackoverflow cũng có 1 câu hỏi tương tự bạn có thể tham khảo: https://stackoverflow.com/questions/50532260/vue-emitting-vs-passing-function-as-props

Tóm tắt đại ý các câu trả lời là: Bố thích thế nào thì viết thế đấy... jk 😂 Mỗi kiểu đều có pros and cons, nhưng khác biệt lớn nhất chỉ là về mặt semantic, dùng kiểu emit giúp bạn tách biệt flow rõ ràng so với kiểu props:

  • Props: cha -> con (chỉ truyền object/primitive types chứ ko truyền function)
  • Emit: cha <- con (emit function, giống như bạn dùng event onclick trên thẻ button vậy)

Nhưng đổi lại với kiểu props thì code sẽ tường minh hơn, vì bạn thấy được function mình truyền vào từ props được sử dụng như thế nào, dễ debug hơn.

Tùy project, preference của ông lead hoặc nếu bạn là lead thì cứ chọn 1 cái rồi cả team cùng follow thôi.

Chia sẻ
thg 8 12, 2022 6:02 SA

Nice

Thực ra thì em cũng mới học Vue và lúc này em cũng làm theo như hướng dẫn trên docs của họ

Vô tình em thử thì nó lại và nó works tốt.

Em cũng cảm nhận đúng là dùng kiểu emit giúp bạn tách biệt flow rõ ràng so với kiểu props

Em có hỏi mấy đứa làm vue mà cũng không để ý cái này.

Thanks anh nhé

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí