vue 在 v-for 时给每项元素绑定事件需要用事件代理吗?为什么?
2024-10-21 09:31:28
vue本身不做事件代理(react将所有事件都委托到document上,然后进行派发)
- 普通html元素和在组件上挂了
.native
修饰符的事件。最终EventTarget.addEventListener()
挂载事件 - 组件上的,vue组件实例上的自定义事件(不包括
.native
)会调用原型上的$on,$emit
(包括一些其他api$off,$once
等等)
vue自身没有做事件代理,如果需要,则直接代理到父节点
<ul @click="meths">
<li v-for="(item,key) in 10" :key="key" :data-index="key">{{item}}</li>
</ul> meths(e) {
if (e.target.nodeName.toLowerCase() === 'li') {
console.log(e.target.innerHTML)
console.log(e.target.dataset)
}
}
事件代理作用主要是 2 个
- 将事件处理程序代理到父节点,减少内存占用率
- 动态生成子节点时能自动绑定事件处理程序到父节点
最新文章
- AndroidProjects个人项目归纳
- react+redux官方实例TODO从最简单的入门(6)-- 完结
- 【Lucene】三个高亮显示模块的简单示例-Highlighter
- 当java出现异常,应如何进行处理
- 大前端学习笔记整理【二】CSS视觉格式化模型
- 【转】 探索UDP套接字编程
- iOS-添加测试设备Identifier
- C#比较dynamic和Dictionary性能
- OCP-1Z0-051-题目解析-第13题
- 按条件生成j随机json包:randomjson
- git忽略文件并删除git仓库中的文件
- wifipineapple插件:codeInject的使用
- C++ stl 怎么打印内存内容?
- Spring MVC整合Mybatis 入门
- Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...
- matlab:inv,pinv逆与伪逆
- python实现的椭圆曲线加密
- chrome 浏览器的插件权限有多大?
- Symfony2学习笔记之事件分配器
- Http 缓存机制