React
目录结构 入口文件
React是 React 的核心库
ReactDom是提供与 DOM 相关的功能
RegisterServiceWorker加快react的运行速度的一个js文件
React创建组件
创建子组件
- App.js 根组件
- 文件名首字母大写 类名首字母大写
- 引入组件
- render单个div可以不写();如果多个,需要用括号,并且需要一个大的div(根节点)包含起来
- 构造函数 constructor
- 继承有两种写法
绑定数据 绑定对象 绑定属性 {this.state.name}
<div title={this.state.title}>绑定数据</div>
<div className='red'>绑定数据</div>
<div style={{'color':'red'}}>绑定数据</div>
<label htmlFor="name"></label>
<input id="name"/>
引入图片
循环数据 必须加key
-
render() { var listResult = this.state.list.map(function(value,key){ return <li key={key}>{value}</li> }) return( <div> <ul> {listResult} </ul> <ul> {/*模板遍历*/} { this.state.list.map(function(value,key){ return <li key={key}>{value}</li> }) } </ul> </div> ) }
react事件方法
-
construtor(){ super(); this.state={name:'world'} // 获取数据--第二种改变this指向的方法 this.getMessage = this.getMessage.bind(this) } // 获取数据--第三种改变this指向的方法 getName=()=>{ alert(this.state.name) } setData=()=>{ // 改变state的值 this.setState({name:'hello'}) } setName=(str)=>{ // 改变state的值 this.setState({name:str}) } <button onClick={this.run}>执行方法</button> <button onClick={this.getData.bind(this)}>获取数据--第一种改变this指向的方法</button> <button onClick={this.getMessage}>获取数据--第二种改变this指向的方法</button> <button onClick={this.getName}>获取数据--第三种改变this指向的方法</button> <button onClick={this.setData}>改变state里的值</button> <button onClick={this.setName.bind(this,'hello')}>执行方法传值</button>
事件对象
- 获取表单的值
- 1.监听表单的改变事件; onChange
- 2.在改变的事件里面获取表单输入的值; 事件对象
- 3.把表单输入的值赋给state.username; this.setState({})
- 4.点击按钮的时候获取state里的username this.state.username
run=(event)=>{ alert(event.target) // 获取执行事件的DOM节点 event.target.style.background="red" // 改变button颜色 // 获取DOM的属性 alert(event.target.getAttribute('aid')) // 123 } inputChange=(e)=>{ console.log(e.target.value) this.setState({username:e.target.value}) } getInput=()=>{ alert(this.state.username) } render(){ return( <div> // 事件对象 <button onClick={this.run} aid='123'>事件对象</button> // 表单事件 // 获取表单的值 1.监听表单的改变事件;2.在改变的事件里面获取表单输入的值; // 3.把表单输入的值赋给state.username;4.点击按钮的时候获取state里的username <input onChange={this.inputChange}/> <button onClick={this.getInput} >获取input值</button> </div> ) }
- ref获取DOM节点
- 获取表单的值
- 获取DOM节点
inputChange=()=>{ // 获取DOM节点 // 1.给元素定义ref属性 // 2.通过this.refs.username 获取DOM节点 let val = this.refs.username.value; this.setState({username:val}) } getInput=()=>{ alert(this.state.username) } render(){ return( <div> {/*表单事件*/} {/* 获取表单的值 1.监听表单的改变事件;2.在改变的事件里面获取表单输入的值;*/} {/* 3.把表单输入的值赋给state.username;4.点击按钮的时候获取state里的username*/} <input onChange={this.inputChange} ref="username"/> <button onClick={this.getInput} >获取input值</button> </div> ) }
- 键盘事件
inputKeyUp=(e)=>{ if(e.keyCode==13){ // 说明按enter alert('123') } } render(){ return( <div> {/*键盘事件*/} <input onKeyUp={this.inputKeyUp}/> </div> ) }
- React实现类似Vue的双向数据绑定
*inputChange=(e)=>{ this.setState({ username: e.target.value }) } render(){ return( <div> {/*双向数据绑定 model改变view view改变反过来影响view*/} <input value={this.state.username} onChange={this.inputChange}/> </div> ) }
- react表单
inputChange=(e)=>{ this.setState({ username: e.target.value }) } render() { return( <div> {/* MVVM*/} <input value={this.state.username} onChange={this.inputChange}/> <input /> </div> ) }
原文地址:https://blog.csdn.net/weixin_46328739/article/details/134779756
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42512.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。