mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
61 lines
1.9 KiB
Markdown
61 lines
1.9 KiB
Markdown
# 🦉 Mounting an application 🦉
|
|
|
|
## Content
|
|
|
|
- [Overview](#overview)
|
|
- [API](#api)
|
|
|
|
## Overview
|
|
|
|
Mounting an Owl application is done by using the `mount` method (available in
|
|
`owl.mount` if you are using the iife build, or it can be directly imported
|
|
from `owl` if you are using a module system):
|
|
|
|
```js
|
|
const mount = { owl }; // if owl is available as an object
|
|
|
|
const env = { ... };
|
|
const app = await mount(MyComponent, { target: document.body, env });
|
|
```
|
|
|
|
Another example:
|
|
|
|
```js
|
|
const config = {
|
|
env: ...,
|
|
props: ...,
|
|
target: document.body,
|
|
position: "self",
|
|
};
|
|
const app = await mount(App, config);
|
|
```
|
|
|
|
A common way to initialize an application is to first setup an environment,
|
|
then to call the `mount` method.
|
|
|
|
## API
|
|
|
|
Mount takes two parameters:
|
|
|
|
- `C`, which should be a component class (NOT instance),
|
|
- `params`, which is an object with the following keys:
|
|
- `target (HTMLElement | DocumentFragment)`: the target of the mount operation
|
|
- `env (optional, Env)` an environment
|
|
- `position (optional, "first-child" | "last-child" | "self")` the position
|
|
where it should be mounted (see below for more informations)
|
|
- `props (optional, any)`: some initial values that are given as props. Useful
|
|
when the root component is configurable, or when testing sub components
|
|
|
|
Here are the various positions supported by Owl:
|
|
|
|
- `first-child`: with this option, the component will be prepended inside the target,
|
|
- `last-child` (default value): with this option, the component will be
|
|
appended in the target element,
|
|
- `self`: the target will be used as the root element for the component. This
|
|
means that the target has to be an HTMLElement (and not a document fragment).
|
|
In this situation, it is possible that the component cannot be unmounted. For
|
|
example, if its target is `document.body`.
|
|
|
|
The `mount` method returns a promise that resolves to the instance of the created
|
|
component.
|