Skip to content

3.1.0

Compare
Choose a tag to compare
@maxence-charriere maxence-charriere released this 26 Aug 07:37
· 570 commits to master since this release

Hello!
Tonight release is focused on code quality and how html is handled behind de scene.

The previous iteration used a decoder to translate html code into a node tree which represented the document state.
In the most heavy scenario, was after diffs and modifications, each modified nodes were encoded to their html representation, sent to the webview and put in place with outerHTML call.

# Before 3.1.0

 -------       ------       --------       ------       ---------       -----------       --------
| compo | --> | html | --> | node A | --> | html | --> | webview | --> | outerHTML | --> | screen |
 -------       ------       --------       ------       ---------       -----------       --------

The current interation still translates html into a node tree but each modifications (creations, modifications, deletions) generate change descriptors. These descriptors are sent to the views which follow the instructions and call the corresponding js or native calls to create, modify or delete the real node.

# After 3.1.0

 -------       ------       --------       --------------       ---------       -----------        --------
| compo | --> | html | --> | node A | --> | change desc. | --> | webview | --> | createNode | --> | screen |
 -------       ------       --------       --------------       ---------       -----------        --------
                                           --------------       ---------       ---------          --------
                                      --> | change desc. | --> | webview | --> | setAttr | -----> | screen |
                                           --------------       ---------       ---------          --------
                                           --------------       ---------       -------------      --------
                                      --> | change desc. | --> | webview | --> | appendChild | -> | screen |
                                           --------------       ---------       -------------      --------

It also allows to keep the same logic whithin different platforms, whether we deal with vebviews or native menus.

general

  • New dom engine.

web

  • Notfound component is now rendered on the client side.