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 静态页面实现随机显示广告的办法
Nov 17 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
Javascript闭包实例详解
Nov 29 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
JavaScript中利用for循环遍历数组
Jan 15 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
关于vue面试题汇总
Mar 20 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
Vue的编码技巧与规范使用详解
Aug 28 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
JS实现横向轮播图(中级版)
Jan 18 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
基于文本的搜索
2006/10/09 PHP
PHP VS ASP
2006/10/09 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
探讨PHP使用eAccelerator的API开发详解
2013/06/09 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php 问卷调查结果统计
2015/10/08 PHP
php事件驱动化设计详解
2016/11/10 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
javascript函数库-集合框架
2007/04/27 Javascript
JQuery 风格的HTML文本转义
2009/07/01 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
javascript中clone对象详解
2014/12/03 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
python文件操作之目录遍历实例分析
2015/05/20 Python
python爬虫之百度API调用方法
2017/06/11 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
Python实现微信机器人的方法
2019/09/06 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
银行求职推荐信范文
2013/11/30 职场文书