The power is that it behaves within the scopes of your JavaScript code. &quot;onclick&quot; in HTML can only refer to the global scope. In React it&#x27;s within the scope the element is defined in.<p>But the more poignant observation about React is that the components aren&#x27;t actually anything like templates. You can think of React components as descriptions of the structure of the DOM -- if the equivalent structures in the DOM already exist[1], they are just &quot;progressively enhanced&quot; when you run React on them. The only reason you would want to generate that HTML on the server with React instead of writing that HTML yourself is that it avoids unnecessary duplication.<p>[1]: currently React needs to add proprietary attributes to identify markup generated by React but this will be made redundant in an upcoming version.