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