5 ms·
I love Angular for exactly that reason. My HTML template should be a HTML file. I cannot stand codebases that mix code and markup together.
by zoomerang 12y ago
I love Angular for exactly that reason. My HTML template should be a HTML file. I cannot stand codebases that mix code and markup together.
- hcarvalhoalves 12y agoIf that's a stab at React.js, notice nothing stops you from having the JSX markup on a separate file. You can also convert from plain HTML to JSX. [1] [1] http://facebook.github.io/react/html-jsx.html http://facebook.github.io/react/html-jsx.html
- zoomerang 12y agoMore a distaste with the design pattern of mixing HTML and Logic in one monolithic codebase. (i.e. lack of proper separation of concerns) Forcing a clear separation leads Junior developers towards a better design, which is one of the reasons I like Angular - I can put a junior dev on a project and have them productive within about 10 minutes while feeling fairly confident they will do things the right way. It's a very easy framework to get started with, leads you towards a good overall architecture, and is deep/powerful enough that it doesn't fall over when things get hairy 85,000 lines of code later. Obviously good React code will keep proper separation of concerns (whether using standalone templates or not), but I do worry a lot of developers will cheat and start emitting snippets of HTML in areas of the codebase that shouldn't be doing that. Mind you React.js is a great framework, I just personally prefer Angular based on experience working with both.
- hcarvalhoalves 12y agoI don't see how Angular does not mix HTML and presentation logic, the point of directives is exactly that. Also, separation of concerns is not about this (it's about encapsulation, see Dijkstra). > (...) but I do worry a lot of developers will cheat and start emitting snippets of HTML in areas of the codebase that shouldn't be doing that. This does not make sense. React.js whole point is writing components that do emit HTML and re-render themselves (and children). Now the only thing the developer has to do is react to events (implement callbacks) and change state (setState), the pipeline takes care of the rest. Not only it's impossible to "cheat" by changing the DOM directly from outside the component (a re-render would remove the changes), it's also more work, so it's not cheating at all. In reality, the clever thing about React is that you start treating data (markup) as code (React.DOM), instead of introducing crutches to work directly with HTML.
- zoomerang 12y agoAngular does mix HTML and presentation logic. That's the point, and this is desirable. Angular does not mix Presentation and Business logic. React doesn't inherently mix the two, but it doesn't dissuade it either. > This does not make sense. React.js whole point is writing components that do emit HTML and re-render themselves (and children). Yes, but it's writing code in Javascript that emits snippets of HTML or DOM. I'm generally not a fan of this approach. Even just just iteration requires jumping between the two, and often breaks up the page into multiple smaller segments in cases where it really doesn't need to me.
- camus2 12y agoa lot of people put html strings into directives so it has nothing to do with angular. Furthermore , in angular the HTML looks like a template, not just html ,with expressions , ng- everywhere ... I dont care about this but let's just not pretend Angular solves the HTML template in code issue . It's far from inobstrusive.
- zoomerang 12y agoYou can cheat in any framework. The difference is that angular strongly encourages you towards one design, whereas React.js does not. (Directives are also not part of your normal daily workflow. Many projects wouldn't even use them). Yes, angular templates are templates, not pure HTML. That's the idea. I'm not sure what your point is there.
- mikewhy 12y ago> I cannot stand codebases that mix code and markup together. In Angular people can write app.directive('myDirective', function () { template: "<strong>oh no</strong>" }); which is what I think they were getting at.
- zoomerang 12y agoSure, but that's not idiomatic Angular. I'd wager the majority of Angular projects don't even use custom directives.
- camus2 12y agoin React templates are not pure html either,I dont get your point.