React--事件处理
来源:互联网 发布:dnf梦幻装备源码 编辑:程序博客网 时间:2024/05/15 23:00
概述:
React是整合HTML 和js混血儿,处理事件和DOM处理事件大致相同,只有的一些语法的差异
主要分两点:
React 事件跟java的驼峰命名法,而DOM事件是小写
JSX对于处理函数是引用也就是({}花括号括起来的),而DOM是字符串(“” 双引号或单引号)JSX对于字符串和函数引用进行区分
JSX不能直接返回false去改变默认行为,必须显式调用preventDefault函数
1.例子如下:HTML下
<button onclick="activateLasers()"> Activate Lasers</button>React形式:
<button onClick={activateLasers}> Activate Lasers</button>
2.对于链接取消默认行为
对于html
<a href="#" onClick="console.log('dadfa'); return false"> 求点</a>对于React 发现它分开处理,函数和html分开
function Claa(){ function c(e){ e.preventDafault(); console.log('ddddddddd'); }; return ( <a href="#" onClick={c}>点我</a> );}ReactDOM.render( <Claa />, document.getElementById('root'))
3.OFF 和ON相互切换
class Toggle extends React.Component{ //接受传入的参数,定义初始的参数 constructor(props){ super(props); this.state={isToggleOn:true}; //绑定this表明handleClick需要this的值动态变化的 this.handleClick = this.handleClick.bind(this); } handleClick(){ //自动会去找element==state对于{}必须要()括起来 this.setState(element=>({ isToggleOn: !element.isToggleOn })); } render(){ return ( //注意这里必须要用this.表示Toggle类下的方法 <button onClick={this.handleClick}> {this.state.isToggleOn ? "NO" : "OFF"} </button> ); }}ReactDOM.render( <Toggle />, document.getElementById('root'))总结:1.以上分为四块部分,1.类初始化(定义状态相关的字段和为方法绑定this对象)
2.触发函数 :这里用了箭头函数,element相等于state
3.html相关的 注意就是this.handleClick 而不是handleClick
4.渲染展示
4.除了绑定this,还有其他方式处理
方式一:初始时候绑定函数
class LoggingButton extends React.Component { // This syntax ensures `this` is bound within handleClick. // Warning: this is *experimental* syntax. constructor(props){ super(props); this.handleClick = () => { console.log('this is:', this); } } render() { return ( <button onClick={this.handleClick}> Click me </button> ); }}ReactDOM.render( <LoggingButton/>, document.getElementById('root'))方式二:如果你看箭头函数,其实你会发现利用绑定其本身的this
class LoggingButton extends React.Component { handleClick() { console.log('this is:', this); } render() { // This syntax ensures `this` is bound within handleClick return ( <button onClick={(e) => this.handleClick(e)}> Click me </button> ); }}总结:
React分工明确的,DOM有点混乱,React绑定this有点麻烦。
阅读全文
0 0
- React-事件处理详解
- React-事件处理详解
- React-native事件处理
- react 之 事件处理
- React--事件处理
- React(5)--事件处理
- React的事件处理函数
- React Native 触摸事件处理详解
- React Native 触摸事件处理详解
- React Native 触摸事件处理详解
- react demo11 (添加组件事件处理)
- 【React Native开发】- 触摸事件处理
- React Native 触摸事件处理详解
- 6.React中文之处理事件
- React Native 触摸事件处理详解
- React Native 触摸事件处理详解
- React事件
- react事件
- 电脑是怎样执行编程语言的
- Android视频播放和横竖屏切换
- LinkedList的实现原理
- VC调用exe文件
- filegetname方法+filegetname(desc_bfile,directory,filename)+使用filegetname方法
- React--事件处理
- Spring Cloud简介以及版本选择
- ubantu16.04 配置samba
- PHP科普
- 解决unity导入模型时出现多层UV的情况
- 使用React的static方法实现同构以及同构的常见问题
- 《C和指针》6.18.1匹配字符
- 噪声强度(噪声功率) 噪声方差到底有什么关系? matlab中的awgn函数
- [NOIP模拟]小x分砖块