我们可以在React中用className或id替换ref吗?

时间:2019-10-29 03:15:54

标签: reactjs

我是React的新手,正在学习参考书。据我所知,refs用于引用组件中的某个标签,但问题是我们不能仅使用className或id代替ref吗? ref是否有任何好处,而className或id无法提供?

1 个答案:

答案 0 :(得分:0)

何时使用参考-Reactjs Refs

裁判有一些很好的用例:

  • 管理焦点,文本选择或媒体播放。
  • 触发命令性动画。
  • 与第三方DOM库集成。

多种原因之一

假设您继续使用ID来访问React .component中的元素之一

onFocus() {
        document.getElementById("myInput").setAttribute("class", "highlight");
      }

      onBlur() {
        document.getElementById("myInput").setAttribute("class", "");
      }

      render() {
        return (
          <div>
            <input
              id="myInput"
              onFocus={this.onFocus.bind(this)}
              onBlur={this.onBlur.bind(this)}
            />
          </div>
        );
    }

这实际上可以工作。

可重用性问题

  • 您将遇到的问题是可重用性。

  • 当您尝试多次创建同一组件时

  • 您可以使用相同的参考创建多个输入。

为您更好地了解Difference