小编Dan*_*ick的帖子

我可以在useEffect钩子中设置状态

假设我有一些依赖于其他状态的状态(例如当A改变时我希望B改变).

是否适合创建一个观察A并在useEffect钩子中设置B的钩子?

效果是否级联,当我点击按钮时,第一个效果会激发,导致b改变,导致第二个效果在下一个渲染之前触发?构造这样的代码有任何性能缺点吗?

let MyComponent = props => {
  let [a, setA] = useState(1)
  let [b, setB] = useState(2)
  useEffect(
    () => {
      if (/*some stuff is true*/) {
        setB(3)
      }
    },
    [a],
  )
  useEffect(
    () => {
      // do some stuff
    },
    [b],
  )

  return (
    <button
      onClick={() => {
        setA(5)
      }}
    >
      click me
    </button>
  )
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

34
推荐指数
5
解决办法
2万
查看次数

NextJS 是否包含仅在捆绑包中的 getServerSideProps 中引用的库?

我有一个 Next.js 页面,它从 .js 内部的数据库(使用 prisma 作为 ORM)获取数据getServerSideProps()

我基于官方 Prisma github 上的这个示例进行工作。这是页面设置的简化版本:

import prisma from 'prisma';

export const getServerSideProps = async ({ req, res }) => {
  const drafts = await prisma.post.findMany(...);
};

const MyPage = () => {return <div>Hello</div>};
export default MyPage;
Run Code Online (Sandbox Code Playgroud)

Prisma 导入到页面文件中并在导出的getServerSideProps()实际页面组件中引用,但未在其中引用。我的问题是,prisma 是否会包含在随此页面发送到浏览器的捆绑包中?或者 Next 是否足够聪明,可以修剪仅在服务器端函数中引用的包?

javascript next.js prisma

5
推荐指数
1
解决办法
1130
查看次数

标签 统计

javascript ×2

next.js ×1

prisma ×1

react-hooks ×1

reactjs ×1