nl_tokens: This function associates a component object with a DOM element by calling the components render method assigning an . element property on the object and also returning the element . It also assigns a virtualNode property based on the return value of the render method . This will be used later by performElementUpdate to diff the new results of render with the previous results when updating the component s element . Finally this function also associates the component with a refs object which is populated with references to elements based on ref properties on nodes of the virtual - dom tree . Before calling into virtual - dom to create the DOM tree it pushes this refs object to a shared stack so it can be accessed by hooks during the creation of individual elements .
pl_tokens: function initialize ( component ) { if ( typeof component . update !== 'function' ) { throw new Error ( 'Etch components must implement `update(props, children)`.' ) } let virtualNode = component . render ( ) if ( ! isValidVirtualNode ( virtualNode ) ) { let namePart = component . constructor && component . constructor . name ? ' in ' + component . constructor . name : '' throw new Error ( 'invalid falsy value ' + virtualNode + ' returned from render()' + namePart ) } applyContext ( component , virtualNode ) component . refs = { } component . virtualNode = virtualNode <mask> . element = render ( component . virtualNode , { refs : component . refs , listenerContext : component } ) }