importOnInteraction
Use the importOnInteraction
function to import component when the user interacts with an element.
Usage
js
import { importOnInteraction } from '@studiometa/js-toolkit';
importOnInteraction(() => import('./components/Component.js'), 'Component', 'click');
Parameters
importFn
(() => Promise<typeof Base>
): the function to import componentsselector
(string
): the name of the component or a CSS selector, the same logic as components resolution will be usedevents
(string|string[]
): one or many events which should trigger the importparent
(Base
): the parent Base instance used to query theselector
, if not specifiedselector
will be searched in the whole document.
Returns
Promise<typeof Base>
: a promise resolving to the the component's class
Examples
Import the class when clicking on the root element of the component:
js
import { Base, importOnInteraction } from '@studiometa/js-toolkit';
class App extends Base {
static config = {
name: 'App',
components: {
Component: (app) => importOnInteraction(
() => import('./components/Component.js'),
'Component',
'click',
app
),
}
}
}
Import the class when clicking on the #import-component-trigger
element which can be anywhere in the DOM:
js
import { Base, importOnInteraction } from '@studiometa/js-toolkit';
class App extends Base {
static config = {
name: 'App',
components: {
Component: () => importOnInteraction(
() => import('./components/Component.js'),
'#import-component-trigger',
'click',
),
}
}
}
Import the class when clicking on the app's btn
ref:
js
import { Base, importOnInteraction } from '@studiometa/js-toolkit';
class App extends Base {
static config = {
name: 'App',
components: {
Component: (app) => importOnInteraction(
() => import('./components/Component.js'),
app.$refs.btn,
'click'
),
},
refs: ['btn'],
};
}