freeze()冻结

104 阅读1分钟

Object.freeze(obj)

用途

Object.freeze() 方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性, 不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、 可配置性、可写性。该方法返回被冻结的对象。

Vue会通过Object.defineProperty对数据进行劫持,来实现视图响应数据的变化, 然而有些时候我们的组件就是纯粹的数据展示,不会有任何改变,我们就不需要Vue来劫持我 们的数据,在大量数据展示的情况下,这能够很明显的减少组件初始化的时间,那如何禁止Vue劫 持我们的数据呢?可以通过Object.freeze方法来冻结一个对象,一旦被冻结的对象就再也不能被 修改了。

用法

exportdefault {
    data() {
        return {
            user: null
        }
    },
    methods: {
        async getInfo () {
            const users = await axios.get("/api/users");
            this.users = Object.freeze(users); 
        }
    }
};