vue实现选中效果


Posted in Javascript onOctober 07, 2020

前情提要

好久没有写Vue了,略有生疏,这个东西还是得多用。

下午看到一个需求,选择相册图片作为轮播图显示。接口返回相册列表,用户选一下再扔回去。

直到我看到e.target.className我就知道这个事情不简单。。

Vue是数据驱动

数据驱动这个是我觉得和jQuery不一样的地方。

jQuery是点一下,加个class,移个class。

Vue是点一下,数据记录,然后自动通知视图。

一个是把选中状态保存在了DOM,一个是把选中状态保存在了js数据模型里。

所以在看到了使用Vue然后获取DOM改class的行为,我及时制止了他。话说你都自己搞了,要Vue干嘛。。。

数据驱动和之前的思想 在一起会怎么样?

数据驱动是一个数据到视图的过程,如果你只改视图不改数据。那么他在其他的地方刷新了数据,就有可能导致视图不同步。比如写的时候写了,那么读的时候读出来的有可能不一样,为什么会这样?因为有两个地方可以改呀,Vue把DOM删了,新渲染的没有你写的状态,读的时候读个鬼。想想,这一个碰运气的东西,能好使吗?

Vue怎么实现这个效果

说了那么多废话,先上地址吧,传送门-我写的DEMO 【具体代码都在这里】

下面简单说说三种写法的思路

  1. 选中的id做成一个数组,多维护一个队列。:class="{selected: ~checkSelect(item.id)}"渲染的时候去判断数组里面有那个id没有。
  2. 选中的id做成一个对象,多维护一个对象。:class="{selected: selectList[item.id]}"和前一个相比对象的话,id作为key查找起来方便了很多。这里要注意的是.$set,划重点要考的。
  3. 直接改原对象,多加一个参数。这个不怎么推荐。

到此这篇关于vue实现选中效果的文章就介绍到这了,更多相关vue选中效果内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript获取选中的文本的方法代码
Oct 30 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 Javascript
jQuery增加、删除及修改select option的方法
Aug 19 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
vue-cli和v-charts实现可视化图表过程解析
Oct 08 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
vue+elementUI 实现内容区域高度自适应的示例
Sep 26 Javascript
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 Javascript
electron踩坑之dialog中的callback解决
Oct 06 #Javascript
electron踩坑之remote of undefined的解决
Oct 06 #Javascript
9个JavaScript日常开发小技巧
Oct 06 #Javascript
详解ES6中class的实现原理
Oct 03 #Javascript
在vue中使用Echarts画曲线图的示例
Oct 03 #Javascript
vue 虚拟DOM的原理
Oct 03 #Javascript
vue使用video插件vue-video-player的示例
Oct 03 #Javascript
You might like
PHP无刷新上传文件实现代码
2011/09/19 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
PHP类的反射用法实例
2014/11/03 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
理解javascript封装
2016/02/23 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
Python中super的用法实例
2015/05/28 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
Python3中的bytes和str类型详解
2019/05/02 Python
python编写计算器功能
2019/10/25 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
大学老师推荐信
2014/02/25 职场文书
成本会计实训报告
2014/11/05 职场文书
2014年度思想工作总结
2014/11/27 职场文书
税务会计岗位职责
2015/04/02 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python