react 中的绑定事件
handleOpen = (e)=> {
this.setState({
open: true
})
}
<Button color='primary' onClick={this.handleOpen}>打开模态框</Button>
在构造函数里面 bing
constructor(props){
super(props);
this.handleOpen = this.handleOpen.bind(this);
}
handleOpen(e) {
this.setState({
open: true
})
}
<Button color='primary' onClick={this.handleOpen}>打开模态框</Button>
获取点击事件的元素
asd = e=>{
console.log(e.currentTarget); // div>span
console.log(e.target); // span
}
return (
<React.Fragment>
<div onClick={this.asd}><span>click me</span></div>
</React.Fragment>
);
传递参数
handleOpen = hello => ({target}) =>{
l(hello, target)
}
<Button color='primary' onClick={this.handleOpen('hello')}>打开模态框</Button>
e.preventDefault(); 阻止默认行为
e.stopPropagation() 阻止事件传播(冒泡)
支持的事件名
rxjs 防抖
<RootRef rootRef={e => this.button = e}>
<Button color='secondary'>Get Json</Button>
</RootRef>
componentDidMount() {
fromEvent(this.button, 'click')
.pipe(
throttleTime(2000))
.subscribe(async v => {
let res = await ajax('http://localhost:1995/a')
.pipe(map(res => res.response))
.toPromise();
store
.state
.users
.push(res)
})
}
lodash 防抖
// 带参数
<Button color='secondary' onClick={this.handleClick('ajanuw')}>Get Json</Button>
handleClick = (name) => throttle((e) => {
l(name)
}, 2000)
// 不带参数
<Button color='secondary' onClick={this.handleClick}>Get Json</Button>
handleClick = throttle((e) => {
l(1)
}, 2000)
rxjs debounce
class Hello extends Component {
list = new Array(20).fill(0);
render() {
return (
<div
ref={this.props.helloRef}
style={{
width: 400,
height: 200,
border: "1px solid red",
overflow: "auto",
}}
>
{this.list.map((el, i) => (
<li key={i}>{i}</li>
))}
</div>
);
}
}
class Test extends Component {
helloRef = React.createRef();
componentDidMount() {
fromEvent(this.helloRef.current, "scroll")
.pipe(debounceTime(20))
.subscribe(v => {
l(v.target.scrollTop);
});
}
render() {
return <Hello helloRef={this.helloRef} />;
}
}
react 中的绑定事件的更多相关文章
- React中的合成事件
React中的合成事件 React自己实现了一套高效的事件注册.存储.分发和重用逻辑,在DOM事件体系基础上做了很大改进,减少了内存消耗,简化了事件逻辑,并最大程度地解决了IE等浏览器的不兼容问题. ...
- jquery-10 jquery中的绑定事件和解绑事件的方法是什么
jquery-10 jquery中的绑定事件和解绑事件的方法是什么 一.总结 一句话总结:bind(); unbind(); one(); 1. jquery中的绑定事件和解绑事件的方法是什么? bi ...
- react第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制)
第五单元(事件系统-原生事件-react中的合成事件-详解事件的冒泡和捕获机制) 课程目标 深入理解和掌握事件的冒泡及捕获机制 理解react中的合成事件的本质 在react组件中合理的使用原生事件 ...
- jquery中on绑定事件
之前项目中动态创建的标签元素 在绑定事件的时候 都是无效 无论如何都不能触发 eg:在页面加载完成之后 再由脚本动态创建的<div>元素 在绑定事件的时候 例如click事件 ...
- jquery appaend元素中id绑定事件失效问题
1. 在jquery中append元素,如果该元素中有id值并且绑定事件,那么该id事件会失效,必须刷新一下才能使用. 2.解决办法: 举例:如果在一个<div class="titl ...
- vue中组件绑定事件时是否加.native
组件绑定事件时 1. 普通组件绑定事件不能添加.native, 添加后事件失效 2. 自定义组件绑定事件需要添加.native, 否则事件无效 <template> <!-- < ...
- Jquery中on绑定事件 点击一次 执行多次 的解决办法
举个例子,在同一个页面有下拉选择框 <select class="mySelect"> <option value="user">按用户 ...
- vue中<select>绑定事件
<div id="app"> <select v-model="selectItem" @change="selectFn($eve ...
- JavaScript中,有三种常用的绑定事件的方法
要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的 ...
随机推荐
- java springboot2 jquery 抽奖项目源码
java+springboot2+jquery+jdk8 实现的多种抽奖效果! 体验抽奖地址: http://47.98.175.6:8091/ 赞助获得源码!!!
- 让你的app在iPhoneX中全屏显示
如果你的项目什么也不修改,直接把你的app运行在 iPhone X 模拟器下,很有可能就会出现下面的情形: 上下都有黑边,没有全屏显示 为了让app能够全屏显示,你需要准备以下的内容 Xcode 9. ...
- xhprof查看性能测试图一直报错:failed to execute cmd: " dot -Tpng"多种因素解决方案
xhprof查看性能测试图一直报错:failed to execute cmd: ” dot -Tpng”多种因素解决方案最近在新环境进行php代码性能测试,用了xhprof这个工具,搭建好以后,点击 ...
- HTTPS IP直连问题小结
HTTPS IP直连问题小结: https://blog.csdn.net/leelit/article/details/77829196 可以使用OkHttpClient进行相同IP地址,不同DNS ...
- angular 2 - 003 typescript
http://www.typescriptlang.org/docs/index.html var book: string = "hellp angular 2"; var nu ...
- css3 的calc
css中宽高位置什么的现在可以在样式中直接使用calc计算了 https://www.w3cplus.com/css3/how-to-use-css3-calc-function.html 运算符前后 ...
- SQL DCL 数据控制语句
前言 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库.表.字段.用户的访问权限和安全级别.主要的语句关键字包 ...
- oracle 函数 输入值,查询数据,返回相应处理结果
create or replace function FUN_SEARCH_ORDERBY ( INSTACEID in varchar2,TYE IN varchar2) return varcha ...
- GitHubPage博客搭建学习专栏
Hexo NexT 博客本地搭建指南 Hexo NexT 博客与Github page 关联指南 Hexo NexT 博客后台管理指南
- 【gulp】gulp + browsersync 构建前端项目自动化工作流
什么是 gulp? gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.gulp.js 是基于 node.js 构建的,利用 node.js 流的威力,你可以快速构 ...