What we can learn from that video is that Vue is rock solid and don't miss alot of features, except some niche issues. Vapor mode is the most awaited feature, Suspense and better v-model support is nice too!
@TheAlexLichter Thanks! It's a really good topic and I can't really find good information about it, the stuff here on RUclips is more than a year old and mostly obsolete by now. Maybe throw some vscode recommendations too 😉
Make it easier to create properly typed component wrappers. The types situation with these are horrible. Makes it a complete pain to write component libraries.
I'm looking forward to Vue no longer needing and to add 'data-v-*' attributes everywhere to make scoped CSS work and just using native @scope instead. Looks like Firefox is the only holdout browser at this point.
As Evan said in ruclips.net/video/xvkf3KOaRlQ/видео.html, you can write a lot of TS without annotating types / without even knowing you write TS, depending on strictness
There is an interesting discussion in github.com/vuejs/vue-vapor/issues/198#issuecomment-2102747023, e.g. the comment from Ben is a good point why it might not be useful/good.
So “missing vue features” is not really vue missing features at all, is just troublescript whining 😅 A Vue feature would be “oh, we need a new v-something for this and that”, while “It needs to support my obnoxious verbose fake JS shenanigans” shouldn’t be a “missing vue feature” tbh. 😂
v-model for dialog/details doesn’t count then I suppose? And conditional props aren’t a TS only feature necessarily and should have a runtime equivalent. 🫡
you have to be another kind of moron to call typescript troublescript or bad or anything, yes it's not like full static typing, but it's the closest we have and dynamic typing is a nightmare as soon as your app has some kind of scale
What we can learn from that video is that Vue is rock solid and don't miss alot of features, except some niche issues.
Vapor mode is the most awaited feature, Suspense and better v-model support is nice too!
Typing attrs. defineAttrs()
I know Volar partially solves this problem. But we need the ability to manually specify types
Yes, Volar does not do much with thast problem at all.
fn -> jsx FTW
Luckily also pending RFC and PR - github.com/vuejs/core/pull/7444
the problem with lack of types for DOM events sucks. I was surprised as a React dev that Vue does not come with it
Hopefully just a matter of time - that'd be such a DX improvement
i was definitely waiting for suspense because i keep seeing that suspense is an experimental feature
Just a matter of time 👏🏻
Hello Alexander, I was wondering if you could do a video or share with us a proper linting setup for a nuxt project
On my list 🙌
@TheAlexLichter Thanks! It's a really good topic and I can't really find good information about it, the stuff here on RUclips is more than a year old and mostly obsolete by now. Maybe throw some vscode recommendations too 😉
there are features that are used all the time, and there are those that are very rarely used, but very useful
how about a concise syntax for SFCs like markojs?
Make it easier to create properly typed component wrappers. The types situation with these are horrible. Makes it a complete pain to write component libraries.
Goes in the same direction of defineAttrs in the top comment. PR exists!
Great video, as always.
Thanks! 🫡
Very Helpful, Thanks!
Thank you 🙏🏻
when you create a sfc that has a root polymorphic component, you can't deal with the polymorphic props, you just looses all of the native types
Interesting list!
Right? Anything you'd add?
Directives typing!
What kind of? You can type a directive itself already
The top 🏆 1 🏆 for me would be v-model in a v-for without using the inded trick !
Which trick? 🤔
@@TheAlexLichter index* like: v-for="(item, index) in items v-model="items[index]"
I'm looking forward to Vue no longer needing and to add 'data-v-*' attributes everywhere to make scoped CSS work and just using native @scope instead. Looks like Firefox is the only holdout browser at this point.
Oh yes, 100% - native scoped CSS will be fun to have!
Didn’t include it bc Evan mentioned it in the podcast and it only depends on browser support
6. No JSX support
Uhh, Vue has JSX support 👀
Typescript by default? Please don't make boilerplate a standard.
As Evan said in ruclips.net/video/xvkf3KOaRlQ/видео.html, you can write a lot of TS without annotating types / without even knowing you write TS, depending on strictness
typescript by default? NO
Default TypeScript is definitely needed! There is no reason to not use TypeScript in 2024 and native and default TS would be awesome.
There is an interesting discussion in github.com/vuejs/vue-vapor/issues/198#issuecomment-2102747023, e.g. the comment from Ben is a good point why it might not be useful/good.
So “missing vue features” is not really vue missing features at all, is just troublescript whining 😅
A Vue feature would be “oh, we need a new v-something for this and that”, while “It needs to support my obnoxious verbose fake JS shenanigans” shouldn’t be a “missing vue feature” tbh. 😂
18 minutes 💀
v-model for dialog/details doesn’t count then I suppose?
And conditional props aren’t a TS only feature necessarily and should have a runtime equivalent. 🫡
@heregundir8292 chaptermarks if you want to skip parts ☺️
learn to code kid
you have to be another kind of moron to call typescript troublescript or bad or anything, yes it's not like full static typing, but it's the closest we have and dynamic typing is a nightmare as soon as your app has some kind of scale
I hope you don't get you wish regarding typescript by default :P
That's fine :D I can write lang="ts" (or enforce it automatically) and be happy too 🙊
My top missing feature is more than 1 component per file
You can with render functions - or with Vue vine!
vue-vine.dev/
first problem is solved with generic
Can you share an example of that?
I’d be curious too!
For some use cases it might be but not all
@@victorh5 my comment is being deleted(
Try without a link. RUclips blocks them automatically I’m afraid.
Or send me a discord message then I can post it
@@victorh5
type DefineType = T extends string ? never : string
type Props =
| { one: T; other?: DefineType }
| { one?: DefineType; other: T }
defineProps()