OveUI博客
老前端的戎码生涯

vue的props(数据类型为Array、Object)处理

  • 注意在 JavaScript 中对象和数组是通过引用传入的;
  • 对于一个数组(或对象)类型的 prop 来说,在子组件中改变这个数组(或对象)本身将会影响到父组件的状态。
  • 所以不可以直接操作数组(或对象)类型prop。
export default {
  props: {
    fileList: Array       // 接收父组件传来的参数
  },
  data() {
    return {
      list: []          // 使用list来接管fileList,此时可以操作list而不会影响父组件
    }
  },
  watch: {
    fileList: {           // 监听fileList,给list赋值
      handler(val) {
        if (val) {
          this.list = val
        }
      },
      immediate: true   // 子组件加载时立即执行
    }
  },
  computed: {
    displayList() {      // 此处操作list
      return this.list.map(item => {
        return item || ''
      })
    }
  }
}
赞(0)
未经允许不得转载:UI树欲静 » vue的props(数据类型为Array、Object)处理