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 扩展对input的一些操作方法
Oct 30 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
JS正则表达式大全(整理详细且实用)
Nov 14 Javascript
js密码强度检测
Jan 07 Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
在vue中封装可复用的组件方法
Mar 01 Javascript
centos 上快速搭建ghost博客方法分享
May 23 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
JavaScript 替换所有匹配内容及正则替换方法
Feb 12 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php 常用类整理
2009/12/23 PHP
PHP学习笔记之二
2011/01/17 PHP
linux下编译安装memcached服务
2014/08/03 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php中错误处理操作实例分析
2019/08/23 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
jquery实现拖动效果
2016/08/10 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
Python学习之time模块的基本使用
2021/01/17 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
大学学习生活感言
2014/01/18 职场文书
销售助理岗位职责
2014/02/21 职场文书
初中生评语大全
2014/04/24 职场文书
销售团队口号大全
2014/06/06 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
见习报告怎么写
2014/10/31 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js