長列表性能優化

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

相關文章
相關標籤/搜索