Annotation Type JsModule
-
@Retention(RUNTIME) @Target(TYPE) @Documented @Repeatable(Container.class) @Inherited public @interface JsModule
Annotation for defining JavaScript Module dependencies on aComponentclass. For adding multiple JavaScript Module files for a single component, you can use this annotation multiple times.The JavaScript module files should be located:
- inside
frontenddirectory in your root project folder in case of WAR project - inside
META-INF/resources/frontenddirectory (inside a project resources folder) in case of JAR project (if you are using Maven this issrc/main/resources/META-INF/resources/frontenddirectory).
It is guaranteed that dependencies will be loaded only once. The files loaded will be in the same order as the annotations were on the class. However, loading order is only guaranteed on a class level; Annotations from different classes may appear in different order, grouped by the annotated class. Also, files identified by
@JsModulewill be loaded beforeJavaScriptandCssImport.NOTE: Currently all frontend resources are bundled together into one big bundle. This means, that JavaScript files loaded by one class will be present on a view constructed by another class. For example, if there are two classes
RootRouteannotated with@Route(""), and another classRouteAannotated with@Route("route-a")and@JsModule("./src/jsmodule.js"), thejsmodule.jswill be run on the root route as well.- Since:
- 2.0
- Author:
- Vaadin Ltd
- See Also:
CssImport
- inside
-
-
Element Detail
-
value
String value
JavaScript module to load before using the annotatedComponentin the browser.NOTE: In the case of using JsModule with LitTemplate, the value needs to point to a real file as it will be copied to the templates folder under target folder. An exported alias from the package will not work.
- Returns:
- a JavaScript module identifier
-
-