4 ms·
React isn't really anything like 90s UI libraries. It is, however, very much like the fairly recent native immediate-mode GUIs that have come out (https://githu
by jhomedall 8y ago
React isn't really anything like 90s UI libraries. It is, however, very much like the fairly recent native immediate-mode GUIs that have come out (https://github.com/ocornut/imgui https://github.com/ocornut/imgui, https://github.com/PistonDevelopers/conrod https://github.com/PistonDevelopers/conrod, etc).
The core feature of React is that your UI is a pure function of your application state. In (e.g.) the Win32 UI, you would receive events, and then need to manually transition your current UI state to the new UI state (hide this button, disable this input, etc).
- pjmlp 8y agoSmalltalk UIs used a pattern called dependency propagation to make objects update themselves based on system wide notifications. Similar idea was used on Oberon System 3 Gadgets toolkit. Also java.util.Observable based on the same Smalltalk ideas was already part of Java 1.0.
- jhomedall 8y agoThat's still event handling. You can do basic binding between outputs and values, but more macroscopic changes (closing a dialog, changing tabs, etc) requires tracking the state your UI is in, and manually transitioning. This is markedly different than React, where the framework diffs the desired UI state (which is a pure function of your application state), and the actual UI state. The minimal number of UI operations necessary is then applied to make the latter match the former. ImGui above works the same way, which makes it very popular for devtools in game development.
- pjmlp 8y agoImGui is quite similar to MS-DOS game UIs, before we migrated to Windows. The source code of quite a few ones is available around the Net.