请问前端 MVVM 框架下 dataset 有什么使用场景?
可以作为性能优化的一种手段,以vue为例,如果一个点击事件需要传参,那么有的可能会这样写<button @click="onClick('something parmas')">click</button>只有一个还没什么,如果是多个button,都是同样的click回调,区别只是参数,那么如果还使用上述方式那么vue会创建多个函数,vue在检测事件绑定时如果绑定不是一个method句柄就会创建一个包裹函数,所以这时就可以把参数放在dataset上,然后将所有事件都使用method减少内存使用;可以用vue sfc看看编译后的js,看看两种方式区别https://sfc.vuejs.org/#eyJBcH...
<button @click="onClick('something parmas')">click</button>
button
还有一种优化就是事件委托,比如tab切换,只需要在父级绑定事件,通过target.dataset.?来获取当前点击的tab下标或id,减少事件的绑定
获取嘛?意义不大。
如果是赋值的话,我看你有写 vue。你可以 :data-id 之类的加上属性。
:data-id
我能想到的只有方便调试(可以直接在 dom 中看到数据),方便第三方插件读取 dom 数据但没有什么复杂的场景需要使用这个吧
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
可以作为性能优化的一种手段,以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。你可以
:data-id
之类的加上属性。我能想到的只有方便调试(可以直接在 dom 中看到数据),方便第三方插件读取 dom 数据
但没有什么复杂的场景需要使用这个吧