可以作为性能优化的一种手段,以vue为例,如果一个点击事件需要传参,那么有的可能会这样写<button @click="onClick('something parmas')">click</button>只有一个还没什么,如果是多个button,都是同样的click回调,区别只是参数,那么如果还使用上述方式那么vue会创建多个函数,vue在检测事件绑定时如果绑定不是一个method句柄就会创建一个包裹函数,所以这时就可以把参数放在dataset上,然后将所有事件都使用method减少内存使用;可以用vue sfc看看编译后的js,看看两种方式区别https://sfc.vuejs.org/#eyJBcH...还有一种优化就是事件委托,比如tab切换,只需要在父级绑定事件,通过target.dataset.?来获取当前点击的tab下标或id,减少事件的绑定
可以作为性能优化的一种手段,以vue为例,如果一个点击事件需要传参,那么有的可能会这样写
<button @click="onClick('something parmas')">click</button>
只有一个还没什么,如果是多个
button
,都是同样的click回调,区别只是参数,那么如果还使用上述方式那么vue会创建多个函数,vue在检测事件绑定时如果绑定不是一个method句柄就会创建一个包裹函数,所以这时就可以把参数放在dataset上,然后将所有事件都使用method减少内存使用;可以用vue sfc看看编译后的js,看看两种方式区别
https://sfc.vuejs.org/#eyJBcH...
还有一种优化就是事件委托,比如tab切换,只需要在父级绑定事件,通过target.dataset.?来获取当前点击的tab下标或id,减少事件的绑定