跳至主要內容
props

props

这一次,通过源码阅读,主要探索的方面包括如何初始化 Props、以及如何进行更新。

初始化

initState(vm);

function initState(vm) {
  vm._watchers = [];
  var opts = vm.$options;
  if (opts.props) {
    initProps(vm, opts.props);
  }
  // ...
}

function initProps(vm, propsOptions) {
  var propsData = vm.$options.propsData || {}; // 获取Vue实例选项上的Props
  var props = (vm._props = {}); // 获取挂载Vue实例上的_props
  var keys = (vm.$options._propKeys = []); // Props的Key值组成的数组
  // ...
  for (var key in propsOptions) loop(key); // 循环遍历 vue 实例选项中Props,并且执行响应式处理以及挂载在对应实例上
  // ...
}

h7mlvuevueprops大约 7 分钟