Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Central topic to learn about rendering in UI5

Aperta
#17 4 commenti 5 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Documentazione
Chiarezza
Da chiarire
Stato di attività
Ferma
Ambito
documentation

Direzione di ricerca

Start by reviewing the existing Renderer Methods, Writing a Control Renderer, Extended Change Detection, and Best Practices for Developers topics referenced in the issue. Map the scattered rendering guidance and identify which examples use deprecated or inconsistent APIs. Done means producing one or two coherent rendering topics and updating the control-rendering best-practices section.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In Process

It would be nice if there is a central place to learn about how renderings are done in UI5 (Especially for new developers with experience in popular frameworks).

1. General understanding

For newcomers and researchers:

  • Basics: what does "rendering" mean in the first place in the context of UI5? (I feel people often confound "rendering" with the paint event of the browser)
  • When, in which situation, or by which actions do controls get invalidated to rerender in UI5?
  • When rerendering, how is the DOM update in UI5 realized? String-based? VDOM? Incremental DOM / in-place DOM patching / semantic rendering? Using a third-party lib like lit-HTML (e.g. in case of UI5 Web Components)? Or something else? How does it work?
    And: how does the current rendering approach differ from other popular concepts? Is the rendering engine itself tree-shakable? Lower memory consumption? Any performance or complexity analysis (Big O)? Does UI5 require diffing the DOM trees to detect changes? Or is the DOM manipulation done directly without diffing?
  • What other concepts does UI5 provide to optimize DOM manipulation?
    Linking to other resources like Extended Change Detection, InvisibleRenderer.render, etc…
2. Implementing renderers

For advanced UI5 developers:

Motivation

Currently, it is easy to lose track of what best practices are, in which situation. Trying to understand the above mentioned points to get a full picture is not easy either. When going through the documentation:

  • Information about rendering seems scattered in different topics.

  • Code snippets in some topics still use the deprecated rendering APIs (write*(), add*(), …)
    Some use the new semantic rendering APIs (openStart(), class(), attr(), …).
    For beginners, it's not clear which one is new and which one is old.

  • Code snippets with inconsistent renderer assignments:

  • Code snippets with inconsistent renderer definitions:

    • In the control definition itself as renderer: {/*...*/}
    • A separate renderer module (e.g. MyControlRenderer.js)
      • Returning a plain object with bExport true (Not intended to be used for non-SAP developers)
      • Returning Renderer.extend(/*...*/); whereas Renderer is required from sap/ui/core/Renderer (Current best-practice AFAIK)
  • One or two topics that explain all the above points would help people to grasp rendering in UI5 quickly. Additionally, the Best Practices for Developers section "Control rendering" should be also enhanced afterwards.

Lingua principale
Nessun dato sulla lingua
Stelle
74
Fork
59
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di UI5/docs

Tutte le issue di UI5/docs

Issue simili

Altre issue su Documentation

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.