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 相关文章推荐
js中的for如何实现foreach中的遍历
May 31 Javascript
Javascript变量的作用域和作用域链详解
Apr 02 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
May 24 Javascript
JavaScript实现类似淘宝的购物车效果
Mar 16 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
elementUI 设置input的只读或禁用的方法
Oct 30 Javascript
详解JavaScript 的变量
Mar 08 Javascript
详解JavaScript中的函数、对象
Apr 01 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
js数组中去除重复值的几种方法
Aug 03 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
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防注入安全代码
2008/04/09 PHP
php利用事务处理转账问题
2015/04/22 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
施工员岗位职责
2014/03/16 职场文书
大学生学习计划书
2014/09/15 职场文书
就业导师推荐信范文
2015/03/27 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Pandas加速代码之避免使用for循环
2021/05/30 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
Python绘画好看的星空图
2022/03/17 Python
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS