All files / src/instance lifecycle.ts

100% Statements 21/21
50% Branches 3/6
100% Functions 2/2
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  1x 1x 1x 1x   20x 20x 20x 20x 20x 80x     1x   64x 64x 64x 64x 64x             64x 64x    
import { bind } from '../util/bind'
import { noop } from '../util/noop'
import type { Doraemon } from './init'
import type { ComponentOptions } from '../types/options'
 
export function initLifecycle (vm, options: ComponentOptions<Doraemon>) {
  const methods = options.methods
  vm._isMounted = false
  vm._isDestroyed = false
  vm._hasHookEvent = true
  for (const key in methods) {
    vm[key] = methods[key] == null ? noop : bind(methods[key], vm)
  }
}
 
export function callHook (vm, hook: string) {
  var handlers = [vm.$options[hook]]
  ifE (handlers) {
    for (var i = 0, j = handlers.length; i < j; i++) {
      try {
        handlers[i].call(vm)
      } catch (e) {
        /** Ignore */
      }
    }
  }
  if (vm._hasHookEvent) {
    Evm.$emit('hook:' + hook)
  }
}