小编Mar*_*tin的帖子

React 功能组件 - 对处理程序使用内联函数会影响性能吗?

在使用类组件时,总是建议不要使用内联匿名函数,因为它对性能不利,即

<input value{this.state.title} 
          onChange={(event) => this.setState({title: event.target.value})} />
Run Code Online (Sandbox Code Playgroud)

您通常必须在渲染方法之外创建一个名为 handleChange 的函数。这意味着每个渲染都不会创建一个新的内联匿名函数。

这让我想到了功能组件和 useState 等。

功能组件是渲染,所以如果我这样做


[title, setTitle] = useState()

<input value{this.title} 
          onChange={(event) => this.setTitle({title: event.target.value})} />
Run Code Online (Sandbox Code Playgroud)

这将与创建函数相同,因为无论如何都会在每次创建函数 - 在函数组件中

我知道可以使用 useCallback 钩子来缓存函数,但也建议不要过度使用它们,因为反应速度很快,并且使用 useCallback 实际上对于简单的情况可能很糟糕。

所以,这让我回到了我原来的问题。

在函数组件内部,我们应该使用内联匿名函数吗?考虑到在功能组件内创建一个函数无论如何都会被创建。

无论如何我认为两者都是垃圾收集

有人知道推荐的方法吗?

提前致谢

reactjs react-hooks react-functional-component

6
推荐指数
1
解决办法
3020
查看次数

了解 Error.captureStackTrace 和堆栈跟踪持久性?

前段时间我曾经使用来自joyent的Verror在重新抛出时不会丢失堆栈跟踪,我刚刚在没有Verror的情况下使用节点v12进行了测试,并且堆栈跟踪似乎在不使用错误的情况下持续存在。

然后我正在查看 Error.captureStackTrace 的使用,它声明在您的错误中使用它,以便错误不会添加到堆栈中。

我不知道我做错了什么,但有或没有 Error.captureStackTrace - 堆栈跟踪是相同的..

我想知道使用 captureStackTrace 的当前状态,因为我认为没有区别:-) 以及似乎不再需要的 VError 的使用。

在文档中,它指出 .stack 在不调用 captureStackTrace 的情况下不可用,但我每次都看到它可用,无论是否有 captureStackTrace

这是 2 x 错误的示例

class MyErrorOne extends Error {
  constructor(message) {
    super(message);

    Error.captureStackTrace(this, this.constructor);
  }
}

class MyErrorTwo extends Error {
  constructor(message) {
    super(message);

    Error.captureStackTrace(this, this.constructor);
  }
}

Run Code Online (Sandbox Code Playgroud)

我通过在每个错误中注释掉 captureStackTrace 来尝试它们,并且堆栈跟踪是相同的。

任何人都可以帮忙吗?

这是我测试调用错误的代码

const DoOne = () => {
  try {
    console.log("executing do one");
    DoTwo();
  } catch (error) {
    console.log("error in DoOne", error);
    console.log("here is the stack ", error.stack);
    throw …
Run Code Online (Sandbox Code Playgroud)

error-handling node.js

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

为什么magin:auto不足以将位置绝对或固定居中?

我试图将 div 的内容居中,我的父容器设置为“相对”。

我在内部 div 上使用它

    position: absolute;
    margin: auto;
    width: 70px;
    height: 70px;
Run Code Online (Sandbox Code Playgroud)

但它拒绝居中,我不得不添加左侧和右侧的0,但我不明白为什么即

    position: absolute;
    right: 0;
    left: 0;
    margin: auto;
    width: 70px;
    height: 70px;
Run Code Online (Sandbox Code Playgroud)

我以为居中只需要一个宽度,这是有的。

我有点困惑为什么将右/左设置为 0 - 似乎有效。

另外,如果图像是 70 像素,父框是 200 像素(确实如此),将右侧设置为 0,左侧设置为 0 - 这实际上是在做什么?

任何想法,我可能没有正确理解。

谢谢。

css css-position

4
推荐指数
1
解决办法
354
查看次数