top | item 41442486

(no title)

holistio | 1 year ago

I had the same vibe and I still have it regarding Nuxt 3.

Had it with React when it moved to functional components from class components.

But I convinced myself I have to dive deep enough to understand it since a lot of people seem to like it. And now I like the Composition API more in general.

Apart from one tidbit: I constantly forget where I need to put `.value` after a variable name to extract its... value.

discuss

order

PikachuEXE|1 year ago

I think of it as a wrapper object (instead of raw value) so we are getting values from (wrapperObjectVariable).value not valueVariable

euoia|1 year ago

The .value thing is dreadful. Is it really necessary? I still prefer options API.

lloydatkinson|1 year ago

It really is awful and smells of leaky abstraction.

Now that this is the recommended way of writing Vue, I’d be really interested in your opinion on React.

Compare the “ref” in Vue with useState hook in React.

With the useState you get back two items: the value, and a setter.

Now every time you access the value you simply access it like a variable because it is.

rty32|1 year ago

That's just how Proxy works in JavaScript. You might want to read a bit more about the underlying mechanism.

Muromec|1 year ago

> I constantly forget where I need to put `.value` after a variable name to extract its... value.

You are supposed to used fancy ide that everyone uses and typescript do yell at you if use guess wrong.

rty32|1 year ago

Being conscious of variable types and function signatures helps you avoid trivial errors and become a more efficient developer. That's just a fact.

You can argue with it or ignore it however you want, but that's simply true.

I also know as a matter of fact that I am more productive than many of my colleagues when working with non statically compiled languages, and that my code is more robust, partly due to the typing I use everywhere. I have colleagues that write JavaScript functions that takes a parameter that could be 4 different types of objects, completely undocumented, and they don't know what's happening one week after shipping the code. I can't stop them doing stupid things like that. They like wasting their life debugging things and refreshing the browser, what can I do.

lloydatkinson|1 year ago

I raised the same concerns multiple times (there was a whole drama thread on GitHub issues at the time) about all of this and it’s clear that the Vue team don’t really care about developer experience or keeping consistent APIs.

If they were going to poorly clone react hooks api then I decided it wasn’t worth my time sticking to the niche framework and went back to react which I now really enjoy.

That and the bad TS support and broken dev tooling for years and the endless deprecated and abandoned tools like Vue CLI replaced by Vite and Vuex replaced by Pinia just highlighted the absurdity of trying to continue using Vue. Also, JSX/TSX is clearly a superior approach with its vast ecosystem of support. Vue can use TSX but good luck with its single docs page and GitHub issues about it open since 2021.

bazoom42|1 year ago

> the Vue team don’t really care about developer experience

This is how you stir up drama instead of constructive discussions. Clearly the team do care quite a lot about developer experience, but they might have different ideals and goals than you do. So lets discuss those differences as adults.