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 相关文章推荐
jQuery 使用手册(三)
Sep 23 Javascript
js确定对象类型方法
Mar 30 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
node.js WEB开发中图片验证码的实现方法
Jun 03 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
May 28 Javascript
video.js使用改变ui过程
Mar 05 Javascript
浅谈Vue的加载顺序探讨
Oct 25 Javascript
VUE重点问题总结
Mar 19 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
JavaScript读写二进制数据的方法详解
Sep 09 Javascript
Node.js API详解之 util模块用法实例分析
May 09 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高手?学会“懒惰”的编程
2006/12/05 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
jquery分页优化操作实例分析
2019/08/23 jQuery
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python文件和流(实例讲解)
2017/09/12 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
基于python3的socket聊天编程
2020/02/17 Python
python自动点赞功能的实现思路
2020/02/26 Python
浅谈Python 参数与变量
2020/06/20 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
一道输出判断型Java面试题
2014/10/01 面试题
毕业求职自荐信格式是什么
2013/11/19 职场文书
大专生自我评价
2014/01/28 职场文书
致垒球运动员加油稿
2014/02/16 职场文书