当前位置: 首页 > Web前端 > vue.js

aninfiniteupdateloopinacomponentrenderfunction

时间:2023-03-31 22:05:30 vue.js

问题:基于el-table开发业务组件时遇到问题,浏览器控制台报错[Vuewarn]:Youmayhaveaninfiniteupdateloopina组件渲染函数。错误原因:在\`v-for\`循环中,如果使用方法或计算属性对vm.$data的属性进行操作,理论上可能会因为修改loop对象而引发死循环。此时Vue会发出警告(不是真正的死循环)。触发场??景:为了支持表列的动态显示,需要为每个el-table-column生成一个唯一的ID,通过**genUniqueKey**()方法生成。模板代码``JScode`exportdefault{data(){return{count:1}},methods:{genUniqueKey(){returnthis.count++}}}`因为模板中的v-for在调用genUniqueKey()时会修改data中的count。解决方案:将count作为局部变量放在组件对象代码之外`letcount=1exportdefault{data(){return{}},methods:{genUniqueKey(){returncount++}}}`