DEV Community

Discussion on: It is ⌚time to ditch ReactJS or Angular and use better web standards like web components😍 part 1

Collapse
vuesomedev profile image
Gábor Soós

Web components can be used in another way: as a standardized glue between different frameworks developed as microservices.
hackernoon.com/front-end-microserv...

I developed in the 3 big frameworks (Angular, Vue, React) and the best thing is they promote best practices: component-based architecture, one-way binding, handling application state separately. Yes they change, but I think in a good direction. Just look at AngularJS -> Angular...they introduced one-way binding. They might be not the best possible, but are aiming in a good direction...and it involves change. Change can be good ;)

Collapse
codelitically_incorrect profile image
codelitically_incorrect • Edited

I hear you, that web components can be a glue between the big 3, Angular, Vue and React. But truthfully, when you see the power, simplicity and flexibility within the "standards-body way" of doing things, you'll realize you are just gluing heavy ass bricks together with elmer, it's just baggage and lots of it.

I love this meme, it brings it into focus:

thepracticaldev.s3.amazonaws.com/i...

Collapse
seanmclem profile image
Seanmclem

There's no simplicity in a production implementation of native web components at scale. It's very complex and inefficient

Thread Thread
codelitically_incorrect profile image
codelitically_incorrect • Edited

That's what you think. What do you mean?

Thread Thread
seanmclem profile image
Seanmclem • Edited

managing renders, lifecycles, attributes/data-props, data and event binding, and usage of node_modules -all becomes a bit of a nightmare when you do everything manual in a web component.

Going vanilla -you won't have builds and bundling.

If you don't want to use libraries you'll just end up writing your own and basically implementing your own framework by the time you're done, and it will take a long time and you'll be debugging forever.

If you use libraries you will make some of these pain points easier, but you won't have proper bundling or node_module handling unless you do a webpack-type config yourself. If you use libraries for rendering, data-binding, routing, etc -then you're practically using a small "framework" like React/preact.

Don't get me wrong, I'm all about progress for the bare-metal specs. I even wrote a web-components boilerplate that solved a lot of my problems and am still working on a native SPA router. However, I found that as I kept working on a long term plan -I found myself just re-implementing SencilJS, so now I just use that.

Thread Thread
codelitically_incorrect profile image
codelitically_incorrect

Hmm, where have you been? I'll contact you from your resume site.

Thread Thread
codelitically_incorrect profile image
codelitically_incorrect

Actually this is ironic, i worked at the same place as you and got fired for using a native Web Component-style implementation because the lead was confused, made a fit about it, we had meetings to discuss the repercussions, risks to the team, and why it looked so different compared to his million jquery scripts vs my single-class files. I was told that i was high risk to the team and immediately fired, no pay.

Besides folks there are completely closed minded f*cks. Peace bro.

Thread Thread
seanmclem profile image
Seanmclem • Edited

Feel free to reach out. You sad we worked together, where was that? Feel free to DM

Thread Thread
seanmclem profile image
Seanmclem

Where was this?

Collapse
vuesomedev profile image
Gábor Soós

Implementing the same functionality with libraries using webcomponents will also result in big node_modules. Luckily not everything is included in the bundled application thanks to intelligent bundlers.