首页 >> js开发 >> jsvue实现选中效果js大全
jsvue实现选中效果js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
前情提要前情提要好久没有写Vue了,略有生疏,这个东西还是得多用。下午看到一个需求,选择相册图片作为轮播图显示。接口返回相册列表,用户选一下再扔回去。直到我看到e.target.className我就知道这个事情不简单。。Vue是数据驱动
Vue是数据驱动
数据驱动这个是我觉得和jQuery不一样的地方。jQuery是点一下,加个class,移个class。Vue是点一下,数据记录,然后自动通知视图。一个是把选中状态保存在了DOM,一个是把选中状态保存在了js数据模型里。所以在看到了使用Vue然后获取DOM改class的行为,我及时制止了他。话说你都自己搞了,要Vue干嘛。。。数据驱动和之前的思想 在一起会怎么样?
数据驱动和之前的思想 在一起会怎么样?
数据驱动是一个数据到视图的过程,如果你只改视图不改数据。那么他在其他的地方刷新了数据,就有可能导致视图不同步。比如写的时候写了,那么读的时候读出来的有可能不一样,为什么会这样?因为有两个地方可以改呀,Vue把DOM删了,新渲染的没有你写的状态,读的时候读个鬼。想想,这一个碰运气的东西,能好使吗?Vue怎么实现这个效果
Vue怎么实现这个效果
说了那么多废话,先上地址吧,传送门-我写的DEMO 【具体代码都在这里】传送门-我写的DEMO下面简单说说三种写法的思路
选中的id做成一个数组,多维护一个队列。:class="{selected: ~checkSelect(item.id)}"渲染的时候去判断数组里面有那个id没有。
选中的id做成一个对象,多维护一个对象。:class="{selected: selectList[item.id]}"和前一个相比对象的话,id作为key查找起来方便了很多。这里要注意的是.$set,划重点要考的。
直接改原对象,多加一个参数。这个不怎么推荐。
选中的id做成一个数组,多维护一个队列。:class="{selected: ~checkSelect(item.id)}"渲染的时候去判断数组里面有那个id没有。选中的id做成一个对象,多维护一个对象。:class="{selected: selectList[item.id]}"和前一个相比对象的话,id作为key查找起来方便了很多。这里要注意的是.$set,划重点要考的。直接改原对象,多加一个参数。这个不怎么推荐。
Vue是数据驱动
数据驱动这个是我觉得和jQuery不一样的地方。jQuery是点一下,加个class,移个class。Vue是点一下,数据记录,然后自动通知视图。一个是把选中状态保存在了DOM,一个是把选中状态保存在了js数据模型里。所以在看到了使用Vue然后获取DOM改class的行为,我及时制止了他。话说你都自己搞了,要Vue干嘛。。。数据驱动和之前的思想 在一起会怎么样?
数据驱动和之前的思想 在一起会怎么样?
数据驱动是一个数据到视图的过程,如果你只改视图不改数据。那么他在其他的地方刷新了数据,就有可能导致视图不同步。比如写的时候写了,那么读的时候读出来的有可能不一样,为什么会这样?因为有两个地方可以改呀,Vue把DOM删了,新渲染的没有你写的状态,读的时候读个鬼。想想,这一个碰运气的东西,能好使吗?Vue怎么实现这个效果
Vue怎么实现这个效果
说了那么多废话,先上地址吧,传送门-我写的DEMO 【具体代码都在这里】传送门-我写的DEMO下面简单说说三种写法的思路
选中的id做成一个数组,多维护一个队列。:class="{selected: ~checkSelect(item.id)}"渲染的时候去判断数组里面有那个id没有。
选中的id做成一个对象,多维护一个对象。:class="{selected: selectList[item.id]}"和前一个相比对象的话,id作为key查找起来方便了很多。这里要注意的是.$set,划重点要考的。
直接改原对象,多加一个参数。这个不怎么推荐。
选中的id做成一个数组,多维护一个队列。:class="{selected: ~checkSelect(item.id)}"渲染的时候去判断数组里面有那个id没有。选中的id做成一个对象,多维护一个对象。:class="{selected: selectList[item.id]}"和前一个相比对象的话,id作为key查找起来方便了很多。这里要注意的是.$set,划重点要考的。直接改原对象,多加一个参数。这个不怎么推荐。
相关文章:
- jsVue使用Proxy代理后仍无法生效的解决js大全
- jsvue组件中传值EventBus的使用及注意事项说明js大全
- jsvue切换菜单取消未完成接口请求的案例js大全
- js详解ES6 扩展运算符的使用与注意事项js大全
- jsvue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)js大全
- js在vue中使用image-webpack-loader实例js大全
- js解决iview table组件里的 固定列 表格不自适应的问题js大全
- jsvue的$http的get请求要加上params操作js大全
- jsVueCli生产环境打包部署跨域失败的解决js大全
- jsVue中nprogress页面加载进度条的方法实现js大全