根据Reactjs.组织处理事件并防止默认使用以下代码:

function ActionLink() {
  function handleClick(e) {
    e.preventDefault();
    console.log('The link was clicked.');
  }
  return (
    <a href="#" onClick={handleClick}>
      Click me
    </a>
  );
}

然而,这也需要在构造函数中添加绑定,比如:

this.handleClick = this.handleClick.bind(this);

我能够通过以下代码获得想要的行为:

<span>
  <a href="#" onClick={()=>doSomething(arg1,agr2)}>Click here</a>
</span>

Question:哪个更好?似乎第一个选项需要使用有状态的组件,第二个选项可以完成这些事情,而不管组件是有状态的还是无状态的.

推荐答案

两种 Select 产生几乎相同的结果.由于ActionLink是一个无状态组件,将重新创建handleClick个组件,并重新分配onClick个组件.如果你想获得最好的性能,你可以使用一个类,比如:

class ActionLink extends React.Component () {
  handleClick = (e) => {
    e.preventDefault();
    console.log('The link was clicked.');
  };

  render() {
    return (
      <a href="#" onClick={this.handleClick}>
        Click me
      </a>
    );
  }
}

在这个例子中.handleClick只绑定一次,并且只执行render方法.如果愿意,还可以在构造函数中绑定handleClick.但是差别太小了,我建议你用你喜欢的那种,你会发现它更清晰.

Reactjs相关问答推荐

LocalStore未存储正确的数据

如何在Reac.js中通过子组件和props 调用父组件函数?

如何在MUI X数据网格列中显示IMG?

App.js中的H2组件不会动态呈现.这可能是什么问题?

在动态React组件中删除事件侦听器

如何从Reaction-Arborist树获取排序数据

在reactjs中刷新页面时丢失状态值

从 MongoDB createAt 字段中分割精确时间

如何在不同的路由中渲染相同的页面组件(包括 getServerSideProps)

如何管理可重用无线电输入的 React 状态?

useEffect内部的RETURN语句在首次按钮点击事件中似乎无效的原因是什么?

未捕获的运行时错误:对象作为 React 子项无效

如何测试使用 React.createportal 呈现的组件?

虽然通过了身份认证,但并没有导航到请求的页面

React 测试库 - 如何断言异步函数之间的中间状态?

MUI - ButtonGroup fullWidth 条件屏幕大小不起作用?

React + i18next + Trans + Prettier:Prettier 最终会在重新格式化 JSX 时 destruct 翻译

如何将值从下拉列表传递到 select 上的输入?响应式JS

谁能根据经验提供有关 useEffect 挂钩的更多信息

React useEffect hooks return () => cleanup() vs return cleanup