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中节点的最近的相关节点访问方法
Mar 20 Javascript
javascript弹出层输入框(示例代码)
Dec 11 Javascript
jquery获取元素索引值index()示例
Feb 13 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
JavaScript 有用的代码片段和 trick
Feb 22 Javascript
Layui 设置select下拉框自动选中某项的方法
Aug 14 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
精读《Vue3.0 Function API》
May 20 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中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php实现倒计时效果
2015/12/19 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python实现简易通讯录修改版
2018/03/13 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
python爬取淘宝商品销量信息
2018/11/16 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python 实现UTC时间加减的方法
2018/12/31 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
keras topN显示,自编写代码案例
2020/07/03 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
毕业生求职简历的自我评价
2013/10/07 职场文书
会计专业推荐信
2013/10/29 职场文书
办公室文秘岗位职责
2013/11/15 职场文书
实习教师自我鉴定
2013/12/09 职场文书
党员的自我评价范文
2014/01/02 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
三年级学生期末评语
2014/12/26 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
工作时间证明
2015/06/15 职场文书
退伍军人感言
2015/08/01 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
redis数据结构之压缩列表
2022/03/21 Redis