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} ))} ); };