vue 会经过 object.defineProperty 对数据进行劫持,来实现视图响应数据的变化,然而有些时候咱们的组件就是纯粹的数据展现,不会有任何改变,咱们就不须要 vue 来劫持咱们的数据,在大量数据展现的状况下,这可以很明显的减小组件初始化的时间。javascript
因此,咱们能够经过 object.freeze 方法来冻结一个对象,这个对象一旦被冻结,vue就不会对数据进行劫持了。vue
export default { data: () => ({ list: [] }), async created() { const list = await axios.get('xxxx') this.list = Object.freeze(list) }, methods: { // 此处作的操做都不能改变list的值 } }
这里只是冻结了 list 的值,引用不会被冻结,当咱们须要 reactive 数据的时候,咱们能够从新给 list 赋值。java