Evan You Profile picture
Husband / Father of two / Founder @voidzerodev / Creator @vuejs & @vite_js. Chinese-only alt: @yuxiyou
2 subscribers
Oct 28, 2022 6 tweets 1 min read
I updated the vite vs next/turbo benchmark by using swc to transform React refresh for vite. To avoid confusion, I have deleted the previous two tweets with outdated numbers.

Latest numbers:
- root: vite 338.2ms / next 334.6ms
- leaf: vite 141.8ms / next 84.4ms The swc transform helps a lot in the root component case because the file is big, and previously cost 300ms in babel transforms alone. This makes vite almost exactly the same speed with turbopack.
Oct 25, 2022 8 tweets 1 min read
I’m excited about turbopack (vercel’s Rust-based successor to webpack). A few thoughts: 1. Vite’s default React HMR is still babel-based, while Next/turbopack use swc/rust-based transform, so the HMR performance difference is a bit of apples to oranges.
Nov 6, 2021 4 tweets 1 min read
Fingerprint reader is so much better than FaceID, which is useless when wearing masks, in low-light settings (e.g. in bed), and even fails when I am wearing a different pair of glasses... Saying this as someone who owns both an Android and an iPhone
Jul 12, 2021 6 tweets 2 min read
Coming soon: Core API for turning any Vue 3 component into a custom element.

Works with most Vue APIs including props, emits, and even provide/inject between nested Vue custom elements. Slots will render as native slot elements. Only caveat is this won't support scoped slots because you can't express scoped slots logic with native slots.
Jul 3, 2021 7 tweets 2 min read
There's a lot of nuance when discussing the "size" of a framework. Is it tree-shakable? How much of it is shakable (i.e. hello world baseline)? How does the size increase as more shakable features are used? How much code does it generate given the same amount of source code? Theoretically, you can plot a curve of bundle size / app scale ratio to find your sweet spot, but that's easier said than done.
Jun 15, 2021 4 tweets 2 min read
@reinink It comes down to a few things: (1) tree-shaking and (2) maintainability. For (1), prefer solutions that auto generate local import statements instead of global registration. @reinink And for (2) it comes down to where the components can be found. If you have a strong file layout convention so that you can always easily trace where a component comes from then it's ok.
Dec 11, 2020 10 tweets 2 min read
I see many people looking at this and say "then it's no longer OSS". To that my reaction is... "so what?" (thread) As consumers of OSS it is often too easy to think of the software as public utility that just exists. Many of us treat the free, unrestricted availability of OSS as our natural right.
Aug 26, 2020 5 tweets 2 min read
To demonstrate how flexible Vue 3 is, here are some just-because-I-can examples:

Using Vue 3 w/ @_developit 's htm for no-build-step JSX: Using Vue 3's reactivity module + lit-html to build a custom framework (/cc @justinfagnani):
May 6, 2020 7 tweets 1 min read
There's a lot of new stuff added to vite in the past week. It's no longer just "dev server for Vue SFCs." Time for a recap on what it really does (thread): 1. During dev, vite is a dev server that compiles source files as they are requested by the browser. No bundling is required, and compilation is truly on-demand. Unchanged files return 304 so browsers don't even request it. This is what makes it start fast and stay fast.
Oct 6, 2019 6 tweets 10 min read
@capajj @andyhot @vuejs @Microsoft @typescript @ahejlsberg @drosenwasser You may think "open to any contribution from day 1" can only be a good thing, but for high visibility projects it simply doesn't work. @capajj @andyhot @vuejs @Microsoft @typescript @ahejlsberg @drosenwasser First time contributions, especially during a phase where the design is still in flux, have extremely high communication cost. People can misunderstand the design, misuse internals, or introduce code that makes it harder to iterate in a different direction.