Next.js 13服务器组件和客户端组件之间有什么区别?

inn6fuwd  于 2023-02-22  发布在  其他
关注(0)|答案(1)|浏览(727)

我试图理解Next.js 13服务器组件和客户端组件之间的区别,我有几个问题:
1.如果服务器组件没有访问钩子的能力,那么使用它的好处是什么?用户如何与它交互?(状态、React性)
1.客户端组件和服务器组件都是SEO友好的吗,或者一个比另一个更适合SEO?
1.我们可以像隐藏服务器组件那样隐藏客户端组件的API端点吗?
示例情况:app/abc/page.tsx

import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

错误:

"useState" is not allowed in Server Components.ts(71001)
yeotifhr

yeotifhr1#

1.所有的Next组件都有访问钩子的能力。但是例如useEffect将只在客户端执行。
1.服务器组件更好的搜索引擎优化。因为搜索引擎SSR页面看起来像静态HTML已经在服务器上生成。
1.像SSR一样隐藏-不。因为组件在服务器端渲染,所有渲染所需的方法都在服务器端调用。但是用户请求将在客户端使用SSR和CSR。但是Next提供了一个内置的代理函数
是的,app目录存在一些问题。x1c 0d1x
这种方法可以让你不用getServerSide props就可以制作SSR组件,但是这是测试版,如果你觉得有问题,不要使用app dir,使用getServerSideProps

相关问题