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 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
JavaScript 关键字屏蔽实现函数
Aug 02 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
详解ES6中的let命令
Apr 05 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 Javascript
Node.js引入UIBootstrap的方法示例
May 11 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
Feb 18 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
js注入 黑客之路必备!
2016/09/14 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
node.js基础知识小结
2018/02/26 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
python使用json序列化datetime类型实例解析
2018/02/11 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
好矿嫂事迹材料
2014/01/21 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
自荐书范文范例
2014/02/13 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python