Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1356 srcapicustom elementsmd #1357

Merged
merged 17 commits into from
Sep 21, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions src/api/custom-elements.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Custom Elements API {#custom-elements-api}
# API des éléments personnalisés {#custom-elements-api}

## defineCustomElement() {#definecustomelement}

This method accepts the same argument as [`defineComponent`](#definecomponent), but instead returns a native [Custom Element](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) class constructor.
Cette méthode accepte le même argument que [`defineComponent`](#definecomponent), mais renvoie à la place un constructeur natif de classe [Élément personnalisé](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements).

- **Type**

Expand All @@ -19,28 +19,28 @@ This method accepts the same argument as [`defineComponent`](#definecomponent),
interface CustomElementsOptions {
styles?: string[]

// the following options are 3.5+
// les options suivantes sont possibles à partir de la version 3.5
configureApp?: (app: App) => void
shadowRoot?: boolean
nonce?: string
}
```

> Type is simplified for readability.
> Les types sont simplifiés pour une meilleure lisibilité.

- **Details**
- **Détails**

In addition to normal component options, `defineCustomElement()` also supports a number of options that are custom-elements-specific:
En plus des options normales des composants, `defineCustomElement()` supporte également un certain nombre d'options spécifiques aux éléments personnalisés :

- **`styles`**: an array of inlined CSS strings for providing CSS that should be injected into the element's shadow root.
- **`styles`**: un tableau de chaînes CSS pour fournir du CSS à injecter dans la shadow root de l'élément.

- **`configureApp`** <sup class="vt-badge" data-text="3.5+"/>: a function that can be used to configure the Vue app instance for the custom element.
- **`configureApp`** <sup class="vt-badge" data-text="3.5+"/>: une fonction qui peut être utilisée pour configurer l'instance de l'application Vue pour l'élément personnalisé.

- **`shadowRoot`** <sup class="vt-badge" data-text="3.5+"/>: `boolean`, defaults to `true`. Set to `false` to render the custom element without a shadow root. This means `<style>` in custom element SFCs will no longer be encapsulated.
- **`shadowRoot`** <sup class="vt-badge" data-text="3.5+"/>: `boolean`, par défaut `true`. Définir à `false` pour restituer l'élément personnalisé sans shadow root. Cela signifie que `<style>` dans les SFC d'éléments personnalisés ne sera plus encapsulé.

- **`nonce`** <sup class="vt-badge" data-text="3.5+"/>: `string`, if provided, will be set as the `nonce` attribute on style tags injected to the shadow root.
- **`nonce`** <sup class="vt-badge" data-text="3.5+"/>: `string`, s'il est fourni, sera défini comme l'attribut `nonce` sur les tags de style injectés dans la shadow root.

Note that instead of being passed as part of the component itself, these options can also be passed via a second argument:
Notez qu'au lieu d'être transmises comme une partie du composant lui-même, ces options peuvent également être transmises via un deuxième argument :

```js
import Element from './MyElement.ce.vue'
Expand All @@ -52,35 +52,35 @@ This method accepts the same argument as [`defineComponent`](#definecomponent),
})
```

The return value is a custom element constructor that can be registered using [`customElements.define()`](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define).
La valeur de retour est un constructeur d'élément personnalisé qui peut être enregistré à l'aide de [`customElements.define()`](https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define).

- **Example**
- **Exemple**

```js
import { defineCustomElement } from 'vue'

const MyVueElement = defineCustomElement({
/* component options */
/* options des composants */
})

// Register the custom element.
// Enregistrez l'élément personnalisé.
customElements.define('my-vue-element', MyVueElement)
```

- **See also**
- **Voir aussi**

- [Guide - Building Custom Elements with Vue](/guide/extras/web-components#building-custom-elements-with-vue)
- [Guide - Créer des éléments personnalisés avec Vue](/guide/extras/web-components#building-custom-elements-with-vue)

- Also note that `defineCustomElement()` requires [special config](/guide/extras/web-components#sfc-as-custom-element) when used with Single-File Components.
- Notez également que `defineCustomElement()` nécessite une [configuration spéciale](/guide/extras/web-components#sfc-as-custom-element) lorsqu'il est utilisé avec des composants monofichiers.

## useHost() <sup class="vt-badge" data-text="3.5+"/> {#usehost}

A Composition API helper that returns the host element of the current Vue custom element.
Un assistant helper de la Composition API qui renvoie l'élément hôte de l'élément personnalisé Vue actuel.

## useShadowRoot() <sup class="vt-badge" data-text="3.5+"/> {#useshadowroot}

A Composition API helper that returns the shadow root of the current Vue custom element.
Un assistant helper de la Composition API qui renvoie la shadow root de l'élément personnalisé Vue actuel.

## this.$host <sup class="vt-badge" data-text="3.5+"/> {#this-host}

An Options API property that exposes the host element of the current Vue custom element.
Une propriété de l'Options API qui expose l’élément hôte de l’élément personnalisé Vue actuel.