{"repo":"widgetti/reacton","free":true,"listed":false,"github":"https://github.com/widgetti/reacton","clone":"git clone https://github.com/widgetti/reacton.git","description":"A pure Python port of React for ipywidgets","language":"Python","stars":317,"topics":["ipywidgets","jupyter","python","react","user-interface"],"license":"MIT","category":"ui-components","readme_excerpt":"Reacton: React for ipywidgets Write ipywidgets like Reacton. Creating a Web-based UI from Python, using ipywidgets made easier, fun, and without bugs. What is it? A way to write reusable components in a React-like way, to make Python-based UI's using the ipywidgets ecosystem (ipywidgets, ipyvolume, bqplot, threejs, leaflet, ipyvuetify, ...). Why? What is the problem? Non-declarative UI's are complex: You have to attach and detach event handlers at the right point, there are many possibles states your UI can be in, and moving from one state to the other can be very hard to do manually and is very error-prone. Using Reacton, you write a component that gives a declarative description of the UI you want based on data. If the data changes, your component render function re-executes, and Reacton will find out how to go from the previous state to the new state. No more manual \"diffing\" on the UI, no more manual tracking of which event handlers to attach and detach. A common issue we also see is that there is one piece of code to set up the UI, and scattered around in many event handlers the changes that are almost repetitions of the initialization code. Why use a React-like solution Using a declarative way, in a React (JS) style, makes your codebase smaller, less error-prone, and easier to reason about. We don't see a good reason not to use it. Also, React has proven itself, and by adopting a proven technology, we can stand on the shoulders of giants, make use of a lot of existing r","default_branch":null,"files":null,"tree":[],"storefront":"/r/widgetti","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/widgetti/reacton/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}