&gt; For Presentation, the HTML and JS are always coupled, whether you have them in separate files or not.<p>Absolutely not. Back when we were all just using jQuery, you could run $(&#x27;.some-class&#x27;).myWidget() to activate a widget on any element matching the query. There was no need to couple the implementation of the widget with the element to which it was applied.<p>If the widget had some internal element construction to do then yes, I would agree, it makes sense to have it be part of the same file, and this was often done with string concatenation back in jQuery days.<p>However, there is still value in being able to share the same html template across multiple models. You may have a general tabular structure you want to adhere to app-wide but you may want to implement different dynamic logic to those tables in different places. Now you&#x27;re faced with having to copy&#x2F;paste the same template over and over in React to accomplish the same task, or you have multiple mixins that define different behavior which kind of defeats the purpose of having the logic and the markup live together.