fre icon indicating copy to clipboard operation
fre copied to clipboard

server side rendering?

Open jantimon opened this issue 4 years ago • 6 comments

does fre provide ssr and hydration like preact and react?

jantimon avatar Jan 08 '21 14:01 jantimon

I do have a good idea to do SSR, but it's not easy

Do you know react server component? It has no states and events and does not need hydration.

In the past, SSR traverses vdom to generate html strings, which has poor performance in the server.

But if we compile JSX into bytecodes, there will be a great performance improvement.

This is feasible on the premise that the component is the same as the server component and has no state.

In other words, we can do ssr of server component at the same time, which has four advantages:

  1. Efficient bytecode

  2. Because the server component has no state, it doesn't need to hydration.

  3. Smaller bundle size.

  4. If we can learn from angular ivy, we can do more tree shaking.

https://github.com/trueadm/react-compiler/blob/master/browser-sandbox/build/compiled-bundle.js

@trueadm has done similar work, and I'd like to try it. Maybe it's a good idea.

yisar avatar Jan 08 '21 15:01 yisar

@jantimon I am paying close attention to react fizz. Its implementation is very interesting and suitable for fre. https://github.com/facebook/react/tree/master/packages/react-server

yisar avatar Apr 19 '21 05:04 yisar

cool :) looking forward on your findings

jantimon avatar Apr 19 '21 06:04 jantimon

Any new ideas yet?

tomByrer avatar May 28 '21 05:05 tomByrer

@tomByrer I do have a lot of ideas here, but it takes time and I may need a summer vacation.

  1. Streaming rendering, which is the most important, enables SSR to support suspend interaction.

https://github.com/facebook/react/pull/20970

  1. ESR, Deploying in cloudflare worker, and developing in labor

I'm a little busy recently, so the progress will be slow. If someone helps me, that would be great. Thank you.

yisar avatar May 28 '21 05:05 yisar

In the past, SSR traverses vdom to generate html strings, which has poor performance in the server.

are there some poor performance examples about renderToString?

snakeUni avatar Jun 01 '21 09:06 snakeUni