The jsx approach is much more like using templates and template strings than the arbitrary htmlinlogic that you can do with php . And under the hood it ' s still all vanilla js . In php it ' s basically arbitrary string concatenation of markup and logic . It ' s incredibly hard to cache , very hard to read , easy to have bugs and hard to debug . JSX is incredibly easy to cache and is done for you for free , very easy to read , incredibly easy to write tests for and debug . Also since you ' re usually doing realtime transpiling , your tools will let you know immediately if there ' s an error . So you get the benefit of defining your UI using a very declarative syntax , with none of the drawbacks of phps implementation .