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 相关文章推荐
JS 创建对象(常见的几种方法)
Nov 03 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
JS小游戏之仙剑翻牌源码详解
Sep 25 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
Jan 02 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
Sep 04 Javascript
JsonProperty 的使用方法详解
Oct 11 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
Jul 26 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 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/06 PHP
php Ajax乱码
2008/04/09 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
jQuery入门知识简介
2010/03/04 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Flask框架配置与调试操作示例
2018/07/23 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python面向对象 反射原理解析
2019/08/12 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
利群广告词
2014/03/20 职场文书
任命书范本大全
2014/06/06 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
中标通知书范本
2015/04/17 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js