zoukankan      html  css  js  c++  java
  • vue Object.freeze() 优化

    参考自:https://segmentfault.com/a/1190000006191558

    Object.freeze()是ES5新增的特性,可以冻结一个对象,防止对象被修改。

    vue 1.0.18+对其提供了支持,对于data或vuex里使用freeze冻结了的对象,vue不会做getter和setter的转换

    如果你有一个巨大的数组或Object,并且确信数据不会修改,使用Object.freeze()可以让性能大幅提升。

    并且,Object.freeze()冻结的是值,你仍然可以将变量的引用替换掉。举个例子:

    <p v-for="item in list">{{ item.value }}</p>
    new Vue({
        data: {
            // vue不会对list里的object做getter、setter绑定
            list: Object.freeze([
                { value: 1 },
                { value: 2 }
            ])
        },
        mounted () {
            // 界面不会有响应
            this.list[0].value = 100;
    
            // 下面两种做法,界面都会响应
            this.list = [
                { value: 100 },
                { value: 200 }
            ];
            this.list = Object.freeze([
                { value: 100 },
                { value: 200 }
            ]);
        }
    })
  • 相关阅读:
    基本内置类型
    多维数组
    数组
    迭代器
    标准库类型 vector
    标准库类型 string
    运算符优先级表
    类型转换
    sizeof 和逗号运算符
    位运算符
  • 原文地址:https://www.cnblogs.com/mengfangui/p/9084302.html
Copyright © 2011-2022 走看看