组件收集表单数据
理解
1) 问题: 在react应用中, 如何收集表单输入数据
2) 包含表单的组件分类
a. 受控组件: 表单项输入数据能自动收集成状态
b. 非受控组件: 需要时才手动读取表单输入框中的数据
例子:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="../js/react.development.js"></script> <script type="text/javascript" src="../js/react-dom.development.js"></script> <script type="text/javascript" src="../js/prop-types.js"></script> <script type="text/javascript" src="../js/babel.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> /* 1. 问题: 在react应用中, 如何收集表单输入数据 2. 包含表单的组件分类 受控组件 非受控组件 */ /* 需求: 自定义包含表单的组件 1. 界面如下所示 2. 输入用户名密码后, 点击登陆提示输入信息 3. 不提交表单 */ class LoginForm extends React.Component{ constructor(props) { super(props) this.handleSubmit = this.handleSubmit.bind(this) this.handleChange = this.handleChange.bind(this) this.state={ pwd:'' } } handleSubmit(event) { //两种方式获取表单的值 const username=this.nameInput.value const password=this.state.pwd alert(`准备提交的用户名为: ${username}, 密码:${password}`) // 阻止事件的默认行为: 提交表单 event.preventDefault() } handleChange(event){ this.setState({pwd: event.target.value}) } render(){ return ( <form onSubmit={this.handleSubmit} action="/test"> <label> 用户名: <input type="text" ref={input=>this.nameInput=input}/> </label> <label> 密码: <input type="password" value={this.state.pwd} onChange={this.handleChange}/> </label> <input type="submit" value="登陆" /> </form> ) } } //渲染应用组件标签 ReactDOM.render(<LoginForm/>,document.getElementById('example')) </script> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具