Tôi muốn hiểu điều gì là và tại sao Renderer2 được sử dụng trong góc cho thao tác DOM. Chúng ta có thể sử dụng thư viện jQuery phong phú và nổi tiếng tại chỗ cho Renderer2 hay javascript gốc? Lợi thế của việc sử dụng Renederer2 trên jQueryRenderer2 trong angular4 là gì? tại sao nó được ưa thích hơn jquery?
Trả lời
Trong ngữ cảnh trình duyệt thông thường Renderer2
là trình bao bọc mặc định đơn giản xung quanh API trình duyệt thao tác DOM. Ví dụ, đây là the implementation chỉ một vài trong số các phương pháp của nó:
class DefaultDomRenderer2 implements Renderer2 {
addClass(el: any, name: string): void { el.classList.add(name); }
createComment(value: string): any { return document.createComment(value); }
createText(value: string): any { return document.createTextNode(value); }
appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }
Nó được giới thiệu với các hoạt động trừu tượng vẽ xa các yếu tố DOM tinh khiết. Ví dụ: nếu bạn cần thêm lớp học, bạn sẽ làm như sau:
constructor(el: ElementRef, renderer: Renderer2) {
renderer.addClass(el.nativeElement, 'some');
}
Ở đây bạn có thể thấy rằng bạn không tương tác trực tiếp với các yếu tố gốc và không sử dụng API của nó nó với jQuery:
constructor(el: ElementRef) {
$(el.nativeElement).addClass('some');
}
Mã với trình kết xuất có lợi ích khi có thể chạy trên nền tảng khác không phải DOM. Ví dụ: Angular cung cấp triển khai Renderer2
cho một webworker WebWorkerRenderer2
. Nó thực hiện các phương thức API
như addClass
sử dụng postMessage các phương thức để giao tiếp với ứng dụng chính mà DOM cần được cập nhật.
- 1. Tại sao "ưa thích hơn 'trong R
- 2. Tại sao (foobar >> x) ưa thích hơn
- 3. Tại sao tinyALSA lại ưa thích hơn libasound?
- 4. Thư viện mẫu ưa thích cho jQuery là gì?
- 5. Cách ưa thích để lặp trong Ruby là gì?
- 6. Chú thích công cụ jQuery ưa thích?
- 7. Ghi đè toán tử C++ - tại sao bạn bè lại ưa thích nó?
- 8. Mẫu Trình tạo: biến thể nào được ưa thích hơn?
- 9. Cách ưa thích của chuỗi chức năng Underscore.js là gì?
- 10. Cách ưa thích để preallocate mảng NumPy là gì?
- 11. cách ưa thích để triển khai hashCode() là gì?
- 12. Tại sao nó được gọi là BSON?
- 13. Phần mở rộng tệp Pascal ưa thích là gì?
- 14. Tại sao nó được gọi là onBlur?
- 15. Tại sao hình ảnh TCPDF nhỏ hơn nó phải là?
- 16. Tại sao Jquery chậm hơn trong IE?
- 17. Tại sao quá tải chức năng mất một int ưa thích hơn một trong những tham gia một unsigned char?
- 18. Tại sao String.equals() nhanh hơn chính nó?
- 19. Cách ưa thích để trả về một bảng trống trong SQL là gì?
- 20. Nên glob.glob (...) được ưa thích hơn os.listdir (...) hoặc cách khác xung quanh?
- 21. Tại sao biểu tượng '@' được đặt trong javascript và mục đích của nó là gì?
- 22. Android: R là gì? Tại sao nó rất khó hiểu?
- 23. Cách ưa thích để thụt lề các trường hợp trong một công tắc là gì?
- 24. Tại sao tên tham số bình luận hơn là để nó vì nó là
- 25. Phong cách ưa thích của bạn cho các biến đặt tên trong R là gì?
- 26. OrderInCategory trong mục menu ActionBar là gì và tại sao nó được sử dụng cho ..?
- 27. Tại sao thích monoids hơn semigroups trong Haskell? Tại sao chúng ta cần mempty?
- 28. AudioFlinger là gì và tại sao nó thất bại TONE_PROP_ACK?
- 29. AF_INET là gì và tại sao tôi cần nó?
- 30. Hộp âm đạo ưa thích/phổ biến cho Django là gì?
Bất kỳ tham chiếu nào mà chúng tôi có thể có mô tả chi tiết về Renderer2 –
@MantuNigam, tôi không nghĩ có bất kỳ sự khác biệt nào với [nguồn] (https://github.com/angular/angular/blob/e3140ae888ac4037a5f119efaec7b1eaf8726286/packages/ platform-browser/src/dom/dom_renderer.ts # L102) –
Xin cảm ơn, @ AngularInDepth.com Đây là một ví dụ hay về cùng https://www.concretepage.com/angular-2/angular-4-renderer2- ví dụ: –