&gt; &quot;The DOM uses local state extensively, and sometimes you need to interact directly with its API. When you do, you can either do more work to translate it into your preferred architecture, or not.&quot;<p>&gt; &quot;Local component state is the new two-way data binding. . . If you listen to people who have spent a lot of time with both systems, what you hear are a lot of single state atom converts and not a lot of people saying &quot;yeah it wasn&#x27;t awesome so I went back to local component state.&quot;<p>&gt; &quot;I wouldn&#x27;t maintain cursor state in the model . . . Whenever you want to change its value, just send the desired new value to that port and let the JS snippet do the &quot;stash cursor position, set the new value, restore cursor position&quot; bit.&quot;<p>The question we were addressing is where your state should live.  @boubiyeah questioned the wisdom of storing all component state (e.g., the current position of a cursor) in a global atom.  You responded that &quot;[l]ocal component state is new two-way data binding.&quot;  Yet yesterday you advised that component local state should live outside of the global atom.<p>Maybe it wasn&#x27;t disingenous, as perhaps you&#x27;ve simply changed your mind.  But then you should make clear that your opinion today is different from what you advised yesterday, as it bears on the credibility of your current advice.