Chúng tôi đặt trình xử lý sự kiện
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
9 nội tuyến trên mỗi trường đầu vào để làm cho trình xử lý được gọi bất cứ khi nào trường đầu vào thay đổi. Trong mỗi trình xử lý, chúng tôi sử dụng thuộc tính import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 của đối tượng import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
2 mà trình xử lý nhận được để truy cập đối tượng phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3. Thuộc tính import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
4 của đối tượng này chứa giá trị đầu vào, vì vậy chúng tôi chuyển nó đến hàm cập nhật trạng thái để cập nhật giá trị của đầu vào cụ thể đóPhần tử
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
5 trong biểu mẫu có import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
6 của import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
7, vì vậy mỗi khi người dùng nhấp vào nó, sự kiện gửi sẽ được kích hoạt. Chúng tôi đặt trình xử lý sự kiện import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
0 trên biểu mẫu để lắng nghe sự kiện này. Trong trình xử lý này, chúng tôi gọi import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
9 trên đối tượng import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
2, để ngăn trang làm mới khi biểu mẫu được gửiĐể lấy các giá trị đầu vào trong trình xử lý sự kiện này sau khi biểu mẫu được gửi, chúng tôi chỉ cần truy cập các biến trạng thái
import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 và import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
2Đăng ký bản tin Coding Beauty
Có được những hiểu biết hữu ích và nâng cao kiến thức phát triển web của bạn với các mẹo và hướng dẫn hàng tuần từ Coding Beauty. Hơn 1.400 nhà phát triển đăng ký
Nhận giá trị đầu vào khi gửi biểu mẫu với import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3
import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
Chúng tôi cũng có thể lấy giá trị của đầu vào biểu mẫu khi gửi bằng cách sử dụng thuộc tính
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 của đối tượng import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
2. Điều này hữu ích trong trường hợp chúng tôi không theo dõi giá trị đầu vào bằng một biến trạng thái, tôi. e. , một đầu vào không được kiểm soátimport { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
Trong trình xử lý sự kiện
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
0, thuộc tính import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 của đối tượng import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
2 trả về đối tượng phần tử biểu mẫu [thuộc loại import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
90]Bởi vì chúng ta đặt giá trị
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
91 trên phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3, nên đối tượng phần tử biểu mẫu sẽ chứa một thuộc tính có cùng tên trả về đối tượng phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3, i. e. , sau khi đặt import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
91 thành import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 trên phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3, chúng ta có thể truy cập đối tượng phần tử cho import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3 này bằng thuộc tính import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1 trên đối tượng phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
6Sau khi nhận được giá trị của từng đầu vào và hiển thị thông báo, chúng tôi gọi phương thức
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
00 trên đối tượng phần tử biểu mẫu để khôi phục các giá trị mặc định của các phần tử đầu vào của biểu mẫu. Đây là cách chúng tôi xóa văn bản trong các trường đầu vào trong ví dụ này vì chúng không được kiểm soát bởi các biến trạng tháiNhận giá trị đầu vào khi gửi biểu mẫu với ref
Chúng tôi cũng có thể sử dụng một thành phần ref để lấy giá trị của đầu vào biểu mẫu không được kiểm soát khi gửi trong React
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
1import { useState, useRef } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const firstNameRef = useRef[undefined];
const lastNameRef = useRef[undefined];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = firstNameRef.current.value;
const lastName = lastNameRef.current.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
Dữ liệu trong đầu vào được kiểm soát được xử lý bởi trạng thái React, nhưng đối với đầu vào không được kiểm soát, nó được xử lý bởi chính DOM. Đây là lý do tại sao
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3 trong ví dụ trên không có import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
4 prop hoặc import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
9 bộ xử lý sự kiện. Thay vào đó, chúng tôi truy cập giá trị của trường đầu vào bằng React ref. DOM cập nhật giá trị này khi văn bản trong đầu vào bị thay đổiĐối với mỗi
import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3, chúng tôi tạo một đối tượng ref với hook import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
06 và đặt nó thành import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
07 prop của import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3. Thao tác này đặt thuộc tính import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
09 của đối tượng ref thành đối tượng DOM đại diện cho phần tử import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
3import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
06 trả về một đối tượng tham chiếu có thể thay đổi không thay đổi giá trị khi một thành phần được cập nhật. Ngoài ra, việc sửa đổi giá trị của thuộc tính import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
09 của đối tượng này không gây ra kết xuất lại. Điều này trái ngược với hàm cập nhật import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
63 được trả về từ import { useState } from 'react';
export default function App[] {
const [message, setMessage] = useState[''];
const handleSubmit = [event] => {
event.preventDefault[];
const firstName = event.target.firstName.value;
const lastName = event.target.lastName.value;
setMessage[`Hello ${firstName} ${lastName}!`];
event.target.reset[];
};
return [
Submit
{message}
];
}
6Mặc dù tài liệu React khuyến nghị sử dụng các thành phần được kiểm soát, các thành phần không được kiểm soát mang lại một số lợi thế. Bạn có thể thích chúng hơn nếu biểu mẫu rất đơn giản và không cần xác thực ngay lập tức và các giá trị chỉ cần được truy cập khi biểu mẫu được gửi
11 Tính năng JavaScript mới tuyệt vời trong ES13
Hướng dẫn này sẽ giúp bạn cập nhật tất cả các tính năng mới nhất được thêm vào trong ECMAScript 13. Những tính năng mới mạnh mẽ này sẽ hiện đại hóa JavaScript của bạn bằng mã ngắn hơn và biểu cảm hơn
Đăng ký và nhận ngay một bản sao miễn phí
Ayibatari Ibaba
Ayibatari Ibaba là nhà phát triển phần mềm có nhiều năm kinh nghiệm xây dựng trang web và ứng dụng. Anh ấy đã viết rất nhiều về nhiều chủ đề lập trình và đã tạo ra hàng chục ứng dụng và thư viện mã nguồn mở