私は反応が比較的新しいので、入力フィールド用の文字カウンタコンポーネント(CharacterCounter)を作成する必要があります。ReactJS - コンポーネント - ベストプラクティス
この質問は、このコンポーネント(文字カウンタ)に特異的なものではない - しかし、一般的にはコンポーネントのベストプラクティスに関する一般的な質問です。
私は二つの方法(私の知る限り知っている - より良い方法がある場合、私はそれを聞いてうれしいです)で実装することができます:コンポーネントをラッピング
1)と子として入力フィールドを持っています - I C:成分は、入力フィールドの後(カウンタを示す)
<CharacterCounter maxLength={50}>
<input type="text">
</CharacterCounter>
と
const input = this.container.firstChild
input.addEventListener('keyup', function() { ... });
- 利点をスパンを挿入します同じ入力に複数のコンポーネントがある場合 - この入力用に追加の機能(コンポーネント)が必要な場合
- 欠点:何らかの理由での入力は、このコンポーネントの最初の子であることを停止した場合 - 作業を停止/もろい
2)入力と(レンダリングのカウンタをレンダリングします汎用コンポーネントを作成します)機能
のような:
<CharacterCounter />
render() {
return (
<input type="text">
<span>{this.state.count}</span>
)
- 利点:壊れやすいなし - 最初の子に頼らない
- 欠点:わからない同じ入力のための他のコンポーネントを持つことが可能である - /またはフィールド
のベストプラクティスは何ですかをぼかすのは、私は毎回ユーザータイプ/またはフォーカスを追跡するための別のコンポーネントを必要としましょうか?