吕梁小程序制作【吕梁企业邮箱】吕梁网站外包、吕梁微信商城开发、吕梁网店美工、吕梁淘宝设计-网站优化-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

吕梁小程序制作【吕梁企业邮箱】吕梁网站外包、吕梁微信商城开发、吕梁网店美工、吕梁淘宝设计

发表日期: 2021-05-22 10:45:12 浏览次数:130

吕梁小程序制作【吕梁企业邮箱】吕梁网站外包、吕梁微信商城开发、吕梁网店美工、吕梁淘宝设计

网站建设.jpg

吕梁市位于山西省中部西侧,因吕梁山脉由北向南纵贯全境而得名。西隔黄河同陕西榆林相望,东北与省会太原市相连,东部、东南部分别和晋中、临汾接壤。全市基本属于温带大陆性季风气候区,冬寒夏暑,四季分明。市境总面积2.1万平方千米,下辖1个市辖区、10个县,代管2个县级市,市政府驻离石区。

吕梁是革命老区,革命战争时期是红军东征主战场、晋绥边区首府和中央后委机关所在地。一部《吕梁英雄传》,是战争年代吕梁人民不畏牺牲、前赴后继的真实写照。 吕梁是发展新区,于2003年撤地设市,是山西省最年轻的地级市,代管的孝义市是山西省县域经济发展的排头兵。

2020年10月20日,吕梁市入选全国双拥模范城(县)名单。 [1] 


首先,要知道再react中的合成事件和原生事件之间的区别。
1、合成事件

在jsx中直接绑定的事件,如

<a ref=”aaa” onClick={(e)=>this.handleClick(e)}>更新</a>
这里的handleClick事件就是合成事件

2、原生事件

通过js原生代码绑定的事件,如

document.body.addEventListener('click',e=>{
// 通过e.target判断阻止冒泡
    if(e.target&&e.target.matches('a')){
return;
    }
console.log('body');
})
//或
this.refs.update.addEventListener('click',e=>{
            console.log('update');
        });

3、阻止冒泡事件分三种情况

A、阻止合成事件间的冒泡,用e.stopPropagation();

import React,{ Component } from 'react';
import ReactDOM,{findDOMNode} from 'react-dom';

class Counter extends Component{
constructor(props){
super(props);
this.state = {
count:0,
        }
    }

handleClick(e){
// 阻止合成事件间的冒泡
        e.stopPropagation();

this.setState({count:++this.state.count});
    }

testClick(){
console.log('test')
     }

render(){
return(
<div ref="test" onClick={()=>this.testClick()}>
<p>{this.state.count}</p>
<a ref="update" onClick={(e)=>this.handleClick(e)}>更新</a>
</div>
        )
    }
}

var div1 = document.getElementById('content');

ReactDOM.render(<Counter/>,div1,()=>{});

B、阻止原生事件与最外层document上的事件间的冒泡,用e.nativeEvent.stopImmediatePropagation();

import React,{ Component } from 'react';
import ReactDOM,{findDOMNode} from 'react-dom';

class Counter extends Component{
constructor(props){
super(props);

this.state = {
count:0,
        }
    }

handleClick(e){
// 阻止原生事件与最外层document上的事件间的冒泡
        e.nativeEvent.stopImmediatePropagation();

this.setState({count:++this.state.count});
    }

render(){
return(
<div ref="test">
<p>{this.state.count}</p>
<a ref="update" onClick={(e)=>this.handleClick(e)}>更新</a>
</div>
        )
    }

componentDidMount() {
document.addEventListener('click', () => {
console.log('document');
        });
    }
}

var div1 = document.getElementById('content');

ReactDOM.render(<Counter/>,div1,()=>{});

C、阻止合成事件与除最外层document上的原生事件上的冒泡,通过判断e.target来避免

import React,{ Component } from 'react';
import ReactDOM,{findDOMNode} from 'react-dom';

class Counter extends Component{
constructor(props){
super(props);

this.state = {
count:0,
        }
    }

handleClick(e){
this.setState({count:++this.state.count});
    }
render(){
return(
<div ref="test">
<p>{this.state.count}</p>
<a ref="update" onClick={(e)=>this.handleClick(e)}>更新</a>
</div>
        )
    }

componentDidMount() {
document.body.addEventListener('click',e=>{
// 通过e.target判断阻止冒泡
            if(e.target&&e.target.matches('a')){
return;
            }
console.log('body');
        })
    }
}

var div1 = document.getElementById('content');

ReactDOM.render(<Counter/>,div1,()=>{});


吕梁小程序制作吕梁企业邮箱吕梁网站外包、吕梁微信商城开发、吕梁网店美工、吕梁淘宝设计

上一条:吕梁网站优化【吕梁开通400电话】吕梁网站搭建、吕梁微信公众号推文外包、吕梁开通京东拼多多设计、吕梁淘宝装修
下一条:吕梁企业微信公众号小程序开发公司、吕梁企业网页设计方案、吕梁做网站开发价格、吕梁微信公众号制作运营报价明细表、吕梁网站设计公司费用、吕梁网站推广大概需要多少钱
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约