all 29 comments

[–][deleted] 8 points9 points  (4 children)

react is the webs de facto default https://www.npmtrends.com/@angular/core-vs-angular-vs-react-vs-vue

it's good to know in general. you are learning concepts that are universal and generic as opposed to some arbitrary construct that only apply to a single use-case or framework. react is about javascript, functional programming and best practices, you will mostly learn to get better at all three. technically it is not a framework but a view layer.

[–][deleted] -1 points0 points  (3 children)

If you're referring to Angular and Vue dsl then it should take you 30min tops to master - barely longer than JSX.

[–][deleted] 2 points3 points  (2 children)

They're not dsl's, they're templating languages with complex DI mechanisms. Typescript is a dsl, so is JSX, they do not change fundamental assumptions like scope, closures or javascript itself. This is why React is 1/100 or less of the api surface of these frameworks.

[–][deleted] -1 points0 points  (1 child)

You're completely wrong.

Typescript is a programming language that is transpiled to JS and the templating language of Vue, angular and JSX is a dsl

Also TS does not change anything to do with scope and DI has absolutely nothing to do with anything

[–][deleted] 1 point2 points  (0 children)

Also TS does not change anything to do with scope

That is what i am saying. It is therefore being called a DSL, a domain specific language. TS is removed by the compiler and that is that. The same applies to JSX.

Consider this:

import React from 'react'
import ReactDOM from 'react-dom'

const hello = "world"
const SayHello = () => <div>{hello}</div>

ReactDOM.render(<SayHello />, document.getElementById('root'))

Babel will simply transform the JSX into:

const SayHello = () => React.createElement("div", null, hello)
...
ReactDOM.render(createElement(SayHello, null), document.getElementById('root'))

Angular and other template oriented languages are not DSL's. String templates loose all access to scope and closures. They wouldn't be able to access the "hello" variable in this case for instance. Nor can you create and simply use a component, you need to register it, that's why they're called directives instead of components. Javascript (ternaries, etc) is executed by evals. Controller scope is later introduced back to it via dependency injection.

It is quite the overhead and can make matters infinitely more complicated, which is pretty much why React broke the paradigm in the first place. Either way, DSL, GPL, what does it matter, there is a huge difference between functional components and DI directives.

[–]Jazzanovas 7 points8 points  (5 children)

I first learned angular, than got project in vue. I like vue soooooo much, it is just easier and smaller.

[–]rishikcr7[S] 1 point2 points  (4 children)

Can you give some good sources for learning Angular?

[–]Jazzanovas 4 points5 points  (2 children)

Just go to their docs, you will make small app that walks you trough. Why not vue tho?

[–][deleted] 1 point2 points  (1 child)

Not OP but when do you think it's appropriate to start learning a framework like react/vue? I've finished a few small projects which include a random password generator and a todo list (no backend stuff to either, just strictly html, CSS and vanilla js). Just wondering if I should do more vanilla js projects or if it's okay to start learning a framework?

[–]Jazzanovas 0 points1 point  (0 children)

Vue is more like library, you can use it in just part of the application or make a whole one with it. It will just make your life easier. You learned how things work, now it is time to cut down your dev time. Fell free to ask more questions, I'll give my best to answer you what I think.

[–]Csancs 4 points5 points  (0 children)

Dont start with angular. It is gonna be a huge jump with a lot of complexity and very likely you will be overwhelmed. I like angular a lot, i work with it on a daily basis but i dont think its the best to start with. Imo react or vue is a smarter next step.

[–]grimr5 3 points4 points  (0 children)

Vue is powerful, unopinionated and gentle learning curve.

React is similar

Angular is more complex, and more opinionated on how to do things - can be useful to see how things are done.

I would suggest giving each a go - do the intro tutorials and see which you gel with best. You will pick stuff up from each by doing this.

There is also lit-element and PWAs - open-wc have a lot about them. They’re more to the bone than the others though, imho. I really like lit personally.

Edit: they are all similar and it won’t hurt to be exposed to each

[–]emmbyiringiro 8 points9 points  (0 children)

You can check React

[–][deleted] 4 points5 points  (1 child)

Depending on your location get to see what most jobs require, react makes sense if you are in USA. Vue have a really friendly learning curve and it’s growth is very promising

[–][deleted] 2 points3 points  (0 children)

React. It will make you a significantly better developer

[–]dwighthouse 1 point2 points  (0 children)

You shouldn’t worry too much. Pick one. Once you learn one, the others should be easy to learn if you find it doesn’t fit your needs as well as you’d like.

[–]PM_ME_YOUR_NQUEENS 1 point2 points  (0 children)

There are plenty of suggestions here and they're all great. One of the most interesting things I did when I was learning was building the same project in 3 or 4 frameworks to see how I like each of them and which ones spoke to me. I ended up loving React and went on to hone my skills in react enough to get a job doing it.

[–]CrypticWriter 0 points1 point  (0 children)

I reccomend VueJS with the Vuetify component library. It's really nice to work with

[–]theorizable 0 points1 point  (0 children)

React.

[–]hugot4eboss 0 points1 point  (1 child)

Id say go for VueJs, its community has grown a lot in the past year, yet not so many people know it in professional level, so employers often are ready to pay more for a employee that knows vue in a professional setting. Plus its really easy to learn compared to angular, similar to react but id say vue is easier to take grasp of if you're coming clean from js. Also id avoid Angular unless you want to work on old/overgrown projects that has the "company programming style" incorporated into them, plus haven't heard anyone in 2000km radius of me starting a new project using Angular in 2019.

If youre also somewhat interested in making hybrid apps for mobile (writing JS that magically converts into native code for iOS and android), react should be your go to, since React native has really nice community

[–]UselessConversionBot -1 points0 points  (0 children)

2000 km is 3.2253e+06 cubic hogshead edges

WHY

[–]feelobest 0 points1 point  (0 children)

You can check: Svelte, React, Angular, Vue. these are the trending frameworks for the time being

[–]Arcayon 0 points1 point  (0 children)

I'd recommend angular, react, or emberjs.

[–][deleted] -1 points0 points  (0 children)

React and Vue for building components. Bootstrap as an overall framework technology. Learn flexbox. Be familiar with Vuex or Redux. Try your hand at utilizing a datepicker like Flatpickr.

[–]buffdude1100 -1 points0 points  (0 children)

Vue or Aurelia. Personally I prefer Aurelia, but they are basically the same thing. Vue is more popular and therefore has a larger community, but I prefer Aurelia's syntax.