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 相关文章推荐
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
Js 正则表达式知识汇总
Dec 02 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
JQuery实现的按钮倒计时效果
Dec 23 Javascript
JS实现标签页切换效果
May 04 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
JS查找孩子节点简单示例
Jul 25 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
Nov 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与SQL注入攻击[一]
2007/04/17 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
浅析php原型模式
2014/11/25 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python通过post提交数据的方法
2015/05/06 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python实现批量监控网站
2016/09/09 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
教师党员思想汇报
2014/01/06 职场文书
人事档案接收函
2014/01/12 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
教师职位说明书
2014/07/29 职场文书
民事二审代理词
2015/05/25 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
学校就业保障协议书
2019/06/24 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL