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 相关文章推荐
JavaScript 调试器简介
Feb 21 Javascript
javascript数组去掉重复
May 12 Javascript
页面使用密码保护代码
Apr 10 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
移动端脚本框架Hammer.js
Dec 15 Javascript
vuejs手把手教你写一个完整的购物车实例代码
Jul 06 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
Jan 10 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
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
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP制作图型计数器的例子
2006/10/09 PHP
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python实现关键词提取的示例讲解
2018/04/28 Python
python迭代dict的key和value的方法
2018/07/06 Python
python pandas生成时间列表
2019/06/29 Python
python让函数不返回结果的方法
2020/06/22 Python
NULL是什么,它是怎么定义的
2015/05/09 面试题
一道SQL存储过程面试题
2016/10/07 面试题
DOM和JQuery对象有什么区别
2016/11/11 面试题
高中数学教师求职信
2013/10/30 职场文书
行政总经理岗位职责
2013/12/05 职场文书
借条格式范本
2015/05/25 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
入党心得体会
2019/06/20 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
Python进程间的通信之语法学习
2022/04/11 Python
python数字图像处理:图像的绘制
2022/06/28 Python