React技术栈-组件的收集表单数据
React技术栈-组件的收集表单数据
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.表单的组件分类
在React应用中,表单的组件收集输入数据,React包含表单的组件分类如下: 受控组件:
表单项输入数据能自动收集成状态 非受控组件:
需要时才手动读取表单输入框中的数据
二.组件的收集表单数据案例
1>.HTML源代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>组件的收集表单数据</title> </head> <body> <div id="box1"></div> </body> <!--导入 React的核心库--> <script type="text/javascript" src="../js/react.development.js"></script> <!--导入提供操作DOM的react扩展库--> <script type="text/javascript" src="../js/react-dom.development.js"></script> <!--导入解析JSX语法代码转为纯JS语法代码的库--> <script type="text/javascript" src="../js/babel.min.js"></script> <!--导入解析解析props属性的库--> <script type="text/javascript" src="../js/prop-types.js"></script> <script type="text/babel"> //1>.定义组件 class LoginForm extends React.Component{ constructor(props){ super(props) //绑定this this.handleSubmit = this.handleSubmit.bind(this) this.handleChange = this.handleChange.bind(this) //初始化状态 this.state = { pwd:"" } } handleSubmit (event) { //阻止事件的默认行为(默认行为是自动提交form表单内容) event.preventDefault(); const name = this.nameInput.value; const {pwd} = this.state; alert(`准备提交的用户名为:${name},密码为:${pwd}`) } handleChange (event){ //读取输入的值 const pwd = event.target.value; //更新pwd的状态 this.setState({pwd}) } render(){ return ( <form action="/test" onSubmit={this.handleSubmit}> 用户名:<input type="text" ref={input => this.nameInput = input}/> 密 码:<input type="password" value={this.state.pwd} onChange={this.handleChange}/> <input type="submit" value="登录" /> </form> ) } } //2>.渲染组件标签 ReactDOM.render(<LoginForm />,document.getElementById("box1")) </script> </html>
2>.浏览器打开以上代码渲染结果
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/12098650.html,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。