当前位置: 首页 > news >正文

react中的受控组件与非受控组件

非受控组件:现用现取

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>react中的受控组件与非受控组件</title><script src="https://unpkg.com/react@18/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script><script src="https://unpkg.com/@babel/standalone@7/babel.min.js"></script><script src="https://unpkg.com/prop-types@15.8.1/prop-types.js"></script>
</head><body><div id="root"></div><script type="text/babel">const root = ReactDOM.createRoot(document.getElementById('root'));class MyComponent extends React.Component {sevaDate = (e) => {const { name, password } = this;alert(`用户名:${name.value},密码:${password.value}`);}render() {return (<form onSubmit={this.sevaDate}><input type="text" ref={c => this.name = c}></input><input type="password" ref={c => this.password = c}></input><button type="submit">提交</button></form>);}};root.render(<MyComponent />);</script>
</body></html>

受控组件  

类似于vue中的数据双向绑定

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>react中的受控组件与非受控组件</title><script src="https://unpkg.com/react@18/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script><script src="https://unpkg.com/@babel/standalone@7/babel.min.js"></script><script src="https://unpkg.com/prop-types@15.8.1/prop-types.js"></script>
</head><body><div id="root"></div><script type="text/babel">const root = ReactDOM.createRoot(document.getElementById('root'));class MyComponent extends React.Component {state = {name: '',password: ''}sevaDate = (e) => {e.preventDefault();// 阻止表单提交的默认行为alert(`用户名:${this.name},密码:${this.password}`);}sevaName = (e) => {this.name = e.target.value; // 将输入框的值赋值给state中的name}sevaPassword = (e) => {this.password = e.target.value; // 将输入框的值赋值给state中的password}render() {return (<form onSubmit={this.sevaDate}><input type="text" onChange={this.sevaName}></input><input type="password" onChange={this.sevaPassword}></input><button type="submit">提交</button></form>);}};root.render(<MyComponent />);</script>
</body></html>

总结

尽量少写非受控组件因为受控组件里一个ref都没有(官方建议少用ref)

http://www.dtcms.com/a/516976.html

相关文章:

  • iOS的动态库和静态库的差异区别以及静态库的好处
  • Word文档中打勾和打叉的三种方法
  • 基于微信小程序的高校班务管理系统【2026最新】
  • 编程教学网站推荐网络营销广告策划
  • 网站建设开票属于哪个名称锦州网站建设品牌
  • 基于SAM2的眼动数据跟踪6——SAM2跟踪
  • Factory Boy:Python测试数据生成的优雅方案
  • 网站icp备案团购网站模板下载
  • 肾脏癌症图像分类数据集
  • 亚马逊云渠道商:AWS Lake Formation是什么?
  • 动画网站源码网站搭建 保定
  • 甘肃做网站工信部查网站备案
  • matlab的map函数怎么使用
  • 郴州网站seo外包wordpress+分页静态
  • 网站做的好坏主要看discuz论坛源码
  • 【展厅多媒体】飞屏互动技术如何增强展厅的科技氛围?
  • 25:第3章面向对象(上)作业示例
  • 宸建设计网站百度知道怎么赚钱
  • 专业定制网站公司网络安全专业就业前景
  • 语雀知识库下载工具yuque-dl
  • 网站按钮确定后图片怎么做企业邮箱怎么在手机上登录
  • 芜湖高端网站建设模版网站系统
  • lesson73:Vue渐进式框架的进化之路——组合式API、选项式对比与响应式新范式
  • Vue02-VUE工程化开发模式
  • LeetCode 380: O(1) 时间插入、删除和获取随机元素
  • Vue2 与 Vue3 父子组件参数传递全解析:从实例到原理
  • html网站登陆注册怎么做爱奇艺会员做任务送十天网站
  • win7 网站配置微信小商店分销系统
  • SQL sever数据库--第二次作业
  • less使用说明