vue计算属性时v-for处理数组时遇到的一个bug问题


Posted in Javascript onJanuary 21, 2018

问题

bug: You may have an infinite update loop in a component render function 无限循环

1.需要处理的数组(在 ** ssq **里):

bonus_code: ['01', '19', '25', '26', '27', '33', '10']

2.计算属性 computed:

ssqRed: function() {
return this.ssq.bonus_code.splice(0, 6)
},
ssqBlue: function() {
return this.ssq.bonus_code.splice(6, 7)
}

3.v-for 代码:

<em class="red-ball tac mr5 fl" v-for="(item, index) in ssqRed">{{ item }}</em>
<em class="blue-ball tac mr5 fl" v-for="(item, index) in ssqBlue">{{ item }}</em>

4.最终结果我想把数组前6个数渲染成红色球,最后一个(也就是第7个)渲染成蓝色。

解答

我已经在 SegmentFault上提问,地址:vue计算属性computed同时操作一个数组

我已采纳答案,将代码改成:

ssqRed: function() {
 return this.ssq.bonus_code.slice(0, 6)
},
ssqBlue: function() {
 return this.ssq.bonus_code.slice(6, 7)
}

问题就在于自己没搞清楚 splice会对原数组造成改变。

在寻找解决方案时,朋友少晖教给我一种更好的解决方式,很感谢

即类名判断

1.如果数组大小已知,就做一个类名判断,索引大于多少展示蓝色的类名就行了;

2.处理后的 html代码:

<em v-for="(item, index) in ssq.bonus_code" :class="['tac','mr5','fl',index>5?'blue-ball':'red-ball']" >{{ item }}</em>

3.增加的代码:

index>5?'blue-ball':'red-ball'

总结

以上所述是小编给大家介绍的vue计算属性时v-for处理数组时遇到的一个bug问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
解密效果
Jun 23 Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
js 连接数据库如何操作数据库中的数据
Nov 23 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
Dec 14 Javascript
如何检测JavaScript的各种类型
Jul 30 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
使用开源工具制作网页验证码的方法
Oct 17 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
Aug 29 Javascript
原生JS实现京东查看商品点击放大
Dec 21 Javascript
Angular17之Angular自定义指令详解
Jan 21 #Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 #Javascript
详解node.js中的npm和webpack配置方法
Jan 21 #Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 #jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 #Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 #Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 #Javascript
You might like
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
类之Prototype.js学习
2007/06/13 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
Django中Forms的使用代码解析
2018/02/10 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
解决python运行启动报错问题
2020/06/01 Python
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
师范生自我鉴定范文
2013/10/05 职场文书
法学院方阵解说词
2014/01/29 职场文书
上海世博会口号
2014/06/19 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
借名购房协议书范本
2014/10/06 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
放牛班的春天观后感
2015/06/01 职场文书
征求意见函
2015/06/05 职场文书
周一问候语大全
2015/11/10 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
php去除deprecated的实例方法
2021/11/17 PHP
如何基于python实现单目三维重建详解
2022/06/25 Python