react中绑定事件为啥不绑定在ul上使用事件代理而直接绑定在li上?-灵析社区

雁过留痕

react中绑定事件为啥不绑定在ul上使用事件代理而直接绑定在li上? // 普通写法 const Sidebar = (props) => { function clickCallback(e) { let type = e.target.getAttribute("data-type"); props.pushTags(type); } return ( {typeMap.map((item) => ( clickCallback(e)} > {item.desc} ))} ); }; // 事件委托写法 const Sidebar = (props) => { useEffect(() => { document.getElementById("ul").addEventListener("click", (e) => { if (e.target.nodeName == "UL") return; let type = e.target.getAttribute("data-type"); props.pushTags(type); }); }, []); return ( {typeMap.map((item) => ( {item.desc} ))} ); };

阅读量:12

点赞量:0

问AI
因为react合成事件已经用事件代理给你实现了 "https://zh-hans.legacy.reactjs.org/docs/events.html" (https://link.segmentfault.com/?enc=Z8TUMl9DgFmgLwdmoEUhKw%3D%3D.vJkvtU7BMULZyecZaAdi7A2ikIZteW7R%2FnmoZ8tCnle0iNJgobtVvywzVYjco6wlQQjv1Pq2yTt%2FYxYLweR7cg%3D%3D) 可以参考看看 "https://segmentfault.com/a/1190000038251163" (https://segmentfault.com/a/1190000038251163)