Q
使用する利点何
1
A
答えて
4
利点は、refが良い再利用性と範囲を持って使用しています。 refはこのコンポーネントにのみ存在するため、このrefを操作すると他のコンポーネントに干渉しません。
あなたがid
を使用している場合、それは問題が重複しています。このコンポーネントについて考えてみてください。
class Demo extends React.Component {
componentDidMount() {
document.getElementById('demo').style.color = this.props.color;
}
render() {
return (
<div id="demo">
content
</div>
);
}
}
class Main exntends React.Component {
render() {
return (
<div>
<Demo color="red"/>
<Demo color="green"/>
<Demo color="blue"/>
</div>
)
}
}
スタイルプロパティを変更するために使用id
場合は、すべてのテキストの色はblue
(最後の宣言)となります。
しかし、もしあなたがref
を使用する場合は、操作は、このコンポーネントで保持を約束することができます。
私も同様の問題があり見つける:あなたは再利用性の問題を被らないしかし
What is the difference with using ref and document.findElementById, ect when using ReactJS?
1
参考文献は、HTMLのIDは同じように動作することができますが。 HTMLでは、要素のIDを設定します。 IDで取得しようとしている要素が完全に一意であるため、コンポーネントを再度使用することはできません。 Refsでは、IDの代わりに参照を指定することができます。この参照を使用すると、参照されている現在の要素を参照できます。 IDを使用すると、ブラウザは一連の修飾されたノードで最初に取得されます。以下の例を見てみましょう:あなたは非常にすぐに障害物になるだろう、この使用してIDを達成しようとした場合
class YourComponent extends React.Component {
onBlur() {
this.refs.referenceValue.setAttribute('class', '');
}
render() {
return (
<div>
<input ref="referenceValue" onBlur={this.onBlur.bind(this)}/>
</div>
);
}
}
この方法で、あなたは同じ参照して、複数のコンポーネントを持つことができます!
関連する質問https://stackoverflow.com/questions/37273876/reactjs-this-refs-vs-document-getelementbyid –