--- title: Interact with the framework and its components slug: '369' canonical_url: https://docs.coveo.com/en/369/ collection: javascript-search-framework source_format: adoc --- # Interact with the framework and its components There are three distinct but equivalent ways to interact with the Coveo JavaScript Search Framework and its components. > **Note** > > **About lazy loading** > > [jsui-new Coveo JavaScript Search Framework v2.2900.23] > > > As of its [July 2017 release (v2.2900.23)](https://docs.coveo.com/en/373#july-2017-release-v2290023), the Coveo JavaScript Search Framework allows you to use _lazy loading_ to asynchronously download only the minimal amount of code your search page requires, rather than using _eager loading_ to sequentially download the entire framework, whether your search page needs the totality of this code or not. > > When using lazy loading in your search page, wait for a component promise to resolve before interacting with it. > > [example] > .Example Interacting with a lazy `Tab` component would look something like this: ```javascript Coveo.load('Tab').then(function(Tab) { // Interact with the Tab component. }); ``` ##### For more information on how to interact with the Coveo JavaScript Search Framework using lazy loading, see [Lazy versus eager component loading - Interacting with lazy components](https://docs.coveo.com/en/295#interacting-with-lazy-components). For the sake of simplicity, this page uses _eager_ loading in its examples, which doesn't require you to wait for component promises to resolve. #### == Using "pure" JavaScript You can interact with the Coveo JavaScript Search Framework using standard JavaScript. ### Getting a component instance You can use standard JavaScript methods such as `document.querySelector()` to get the HTML element of a component you want to interact with. The `Coveo.get()` method then allows you to get a reference to the corresponding component instance. You can call methods from this reference. **Example** Consider the following markup: ```html [ ... ]