front-end-interview-questions icon indicating copy to clipboard operation
front-end-interview-questions copied to clipboard

【vue】为什么在初始化阶段才去进行合并处理

Open yayxs opened this issue 3 years ago • 0 comments

const Child = {
  template: '<span></span>',
  data () {
    return {
      childData: this.parentData
    }
  },
  props: ['parentData'],
  created () {
    // 这里将输出 parent
    console.log(this.childData)
  }
}

var vm = new Vue({
    el: '#app',
    // 通过 props 向子组件传递数据
    template: '<child parent-data="parent" />',
    components: {
      Child
    }
})

因为 inject 和 props 这两个选项的初始化是先于 data 选项的,这就保证了我们能够使用 props 初始化 data 中的数据

这样就保证了我们在 data 中使用props 中的值

由于 props 的初始化先于 data 选项的初始化 2、data 选项是在初始化的时候才求值的,你也可以理解为在初始化的时候才使用 mergeData 进行数据合并

yayxs avatar Apr 07 '21 02:04 yayxs