Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Let's be clear, the design I'm proposing makes no changes to which boundaries are allowed. It simply switches the default from shared to client. Nothing stops a given bundler from requiring a shared component where one is expected now.

What that compromise would have done however is caused significantly less adoption, because "out of sight, out of mind". Most people would not opt into shared/server since RSC is not providing enough value for them: They don't mind the waterfalls, they're stuck in their ways, and above all they highly value reactivity bring sprinkled everywhere since that's what they were all running away from in template based frameworks.

I think where we likely won't see eye to eye is if that was a fair decision to make. I think especially given the singular implementor, the React time should have left RSC as a default disabled and left the uphill battle to Vercel to convince developers to opt into RSC in their own bundler.

Forcing NPM packages to need to think about appending "use client" to be is the smoking gun that this was the wrong move.



The default is client components. You need to opt-in to server components by running a server that serves up your root component as a server component.


No, the default is shared. It's literally in the RFC.

That's why using any interactivity in a component default breaks until you add "use client". The alternative would have been to have state, a core concept of React, work correctly by default, and make server/shared components explicitly marked.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: