MCPcopy Create free account
hub / github.com/TruthHun/BookStack / updateChildComponent

Function updateChildComponent

static/vuejs/vue.esm.js:2172–2225  ·  view source on GitHub ↗
(
  vm,
  propsData,
  listeners,
  parentVnode,
  renderChildren
)

Source from the content-addressed store, hash-verified

2170}
2171
2172function updateChildComponent (
2173 vm,
2174 propsData,
2175 listeners,
2176 parentVnode,
2177 renderChildren
2178) {
2179 // determine whether component has slot children
2180 // we need to do this before overwriting $options._renderChildren
2181 var hasChildren = !!(
2182 renderChildren || // has new static slots
2183 vm.$options._renderChildren || // has old static slots
2184 parentVnode.data.scopedSlots || // has new scoped slots
2185 vm.$scopedSlots !== emptyObject // has old scoped slots
2186 );
2187
2188 vm.$options._parentVnode = parentVnode;
2189 vm.$vnode = parentVnode; // update vm's placeholder node without re-render
2190 if (vm._vnode) { // update child tree's parent
2191 vm._vnode.parent = parentVnode;
2192 }
2193 vm.$options._renderChildren = renderChildren;
2194
2195 // update props
2196 if (propsData && vm.$options.props) {
2197 observerState.shouldConvert = false;
2198 if (process.env.NODE_ENV !== 'production') {
2199 observerState.isSettingProps = true;
2200 }
2201 var props = vm._props;
2202 var propKeys = vm.$options._propKeys || [];
2203 for (var i = 0; i < propKeys.length; i++) {
2204 var key = propKeys[i];
2205 props[key] = validateProp(key, vm.$options.props, propsData, vm);
2206 }
2207 observerState.shouldConvert = true;
2208 if (process.env.NODE_ENV !== 'production') {
2209 observerState.isSettingProps = false;
2210 }
2211 // keep a copy of raw propsData
2212 vm.$options.propsData = propsData;
2213 }
2214 // update listeners
2215 if (listeners) {
2216 var oldListeners = vm.$options._parentListeners;
2217 vm.$options._parentListeners = listeners;
2218 updateComponentListeners(vm, listeners, oldListeners);
2219 }
2220 // resolve slots + force update if has children
2221 if (hasChildren) {
2222 vm.$slots = resolveSlots(renderChildren, parentVnode.context);
2223 vm.$forceUpdate();
2224 }
2225}
2226
2227function isInInactiveTree (vm) {
2228 while (vm && (vm = vm.$parent)) {

Callers 1

vue.esm.jsFile · 0.70

Calls 3

validatePropFunction · 0.70
updateComponentListenersFunction · 0.70
resolveSlotsFunction · 0.70

Tested by

no test coverage detected