Sử dụng refs trong reactjs

Giới thiệu nội dung bài viết

Chào các em, hôm nay anh sẽ hướng dẫn mọi người hiểu về refs trong reactjs.

1. Sử dụng refs

Refs được sử dụng để trả về tham chiếu của một phần tử trên web. Chúng ta nên hạn chế sử dụng Refs tuy nhiên Refs vẫn có hữu ích trong một số trường hợp như chúng ta muốn đo đạt hoặc thêm các phương thức cho các phần tử ở trên DOM

2. Ví dụ refs

Trong ví dụ sau đây chúng ta chúng ta sử dụng refs để xoá các giá trị trong input. Hàm ClearInput sẽ tìm kiếm các phần tử trên web có giá trị ref=”input”, sau đó reset lại giá trị trong State và sau đó add thêm sự kiện focus khi button được click

Chúng ta có file App.jsx như sau

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import React from 'react';
import ReactDOM from 'react-dom';

class App extends React.Component {
   constructor(props) {
      super(props);
      
      this.state = {
         data: ''
      }
      this.updateState = this.updateState.bind(this);
      this.clearInput = this.clearInput.bind(this);
   };
   updateState(e) {
      this.setState({data: e.target.value});
   }
   clearInput() {
      this.setState({data: ''});
      ReactDOM.findDOMNode(this.refs.myInput).focus();
   }
   render() {
      return (
         <div>
            <input value = {this.state.data} onChange = {this.updateState} 
               ref = "myInput"></input>
            <button onClick = {this.clearInput}>CLEAR</button>
            <h4>{this.state.data}</h4>
         </div>
      );
   }
}
export default App;

Chúng ta có file main.js để chạy như sau

1
2
3
4
5
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';

ReactDOM.render(<App/>, document.getElementById('app'));

Khi button được click chúng ta xoá giá trị trong textbox đồng thời focus chuột vào ô textbox.

reactjs

3. Video Demo


Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments