美文网首页
使用vue遇到的bug

使用vue遇到的bug

作者: 丘可_2874 | 来源:发表于2019-04-15 22:03 被阅读0次

Vue数据更新UI不刷新显示  Vue.set( target, key, value )

vue比较常见的坑就是数据(后台返回)更新了,但是UI界面并没有更新,常见于以下情况:

一.数据为数组时

1.通过数组索引修改数组元素例如:

export default{

    data(){

        return{

                    arr:[

                            {

                                   a:1,

                                   b:2,

                                   c:3

                            }

                        ]

    }

},

methods:{

        update(){

            this.arr[0].a=4;

        } 

 }

}

此时ui数据并不会刷新。

2.修改数组长度时:

export default{

            data(){

                    return{

                                arr:[

                                        {a:1,

                                         b:2,

                                         c:3

                                        }

                                ]

               }

},

methods:{

             update(){

                        this.arr.length=4;

            }

}

}

解决方案:

export default{

            data(){

                return{

                        arr:[1,2,3]

                }

  },

methods:{

        update(){

                this.$set(this.arr,0,'a')

       }

}

}

如果data为JSON数组则:

export default{

            data(){

                return{

                        arr:[{a:1},{a:2},{a:3}]

                    }

},

        methods:{

                update(){

                        var item=this.arr[0];

                        this.$set(item,' a ' , '  ss ');

                }

}

}

第一个参数为要更新数据的数组,第二个参数为要更新的数组中具体的元素下标,第三个参数为新数据。

二、数据为对象时:

Vue 不能检测对象属性的添加或删除:你可以这样添加一个属性

export default{

            data(){

                return{

                        obj:{a:1}

                    }

},

        methods:{

                update(){

                        this.$set(this.obj , ' b ' , '  2 ');

                }

    }

}

如果要添加多个属性:

export default{

            data(){

                return{

                        arr:[{a:1},{a:2},{a:3}]

                    }

},

        methods:{

                update(){

                        this.obj(Object.asign({},this.obj,{

                            a:2,

                            b:3,

                            c:4                            

                        })

                );

      }

}

相关文章

  • 使用vue遇到的bug

    Vue数据更新UI不刷新显示 Vue.set( target, key, value ) vue比较常见的坑就是数...

  • BUG篇

    记录一些程序中遇到的有意思的BUG 1.19.3.13遇到一个vue中使用input的bug 情况:需要验证1...

  • 关于vue2中keep-alive和mint-ui中tabbar

    最近在使用vue2来开发一个webapp。开发过程中遇到了一个bug。首先,项目所使用的是饿了么基于vue2...

  • Cannot read property 'validate'

    首先遇到BUG 不要慌,在vue表单提交的时候,我遇到了一个BUG,提示:Cannot read property...

  • vue3拖拽demo

    vue3使用vue-draggable会有如下bug vue3要安装vue-draggable-next 代码 v...

  • vue 的坑

    记录vue中遇到的坑(不管是组件ele组件还是vue本身)Element 组件中的bug 寻找地址:https:/...

  • jedisPool使用遇到的bug

    这个是今天发现一个bug:在测试redis并发读写的时候(jedis作为客户端,并使用了连接池),总是报用完jed...

  • 使用Glide遇到的Bug

    最近在使用Glide的过程中遇到了一个Bug:我在使用填充图片setPlaceHolder(int resID)的...

  • 富文本编辑器 wangEditor多图上传

    1 下载wangEditor 2 在vue中使用 原文地址:https://blog.csdn.net/bug_...

  • flutter RenderBox was not laid o

    使用TextFormField和TextField控件时,遇到此bug。 解决

网友评论

      本文标题:使用vue遇到的bug

      本文链接:https://www.haomeiwen.com/subject/hpagiqtx.html