Skip to content

events.md #27

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

Closed
wants to merge 3 commits into from
Closed
Changes from 2 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
118 changes: 59 additions & 59 deletions src/v2/guide/events.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
---
title: Event Handling
title: Gestionnaire des événements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gestionnaire d'événements

type: guide
order: 9
---

## Listening to Events
## Ecoute des événements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Écoute


<p class="tip">**Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vuejs.org).**</p>We can use the `v-on` directive to listen to DOM events and run some JavaScript when they're triggered.
Nous pouvons utiliser l'instruction `v-on` pour écouter les événements du DOM afin d'éxécuter du JavaScript lorsque ces événements surviennent.

For example:
Par exemple:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Par exemple :

(espace devant :)


``` html
<div id="example-1">
<button v-on:click="counter += 1">Add 1</button>
<p>The button above has been clicked {{ counter }} times.</p>
<p>Le bouton ci-dessus a été cliqué {{ counter }} fois.</p>
</div>
```
``` js
Expand All @@ -25,12 +25,12 @@ var example1 = new Vue({
})
```

Result:
Résultat:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Résultat :

(espace devant :)


{% raw %}
<div id="example-1" class="demo">
<button v-on:click="counter += 1">Add 1</button>
<p>The button above has been clicked {{ counter }} times.</p>
<p>Le bouton ci-dessus a été cliqué {{ counter }} fois.</p>
</div>
<script>
var example1 = new Vue({
Expand All @@ -42,15 +42,15 @@ var example1 = new Vue({
</script>
{% endraw %}

## Method Event Handlers
## Les méthodes de gestion d'évènement"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

un " qui traine à la fin


The logic for many event handlers will be more complex though, so keeping your JavaScript in the value of the `v-on` attribute simply isn't feasible. That's why `v-on` can also accept the name of a method you'd like to call.
La logique pour beaucoup des gestionnaires d'événements sera très certainement plus complexe, par conséquence, garder votre JavaScript dans la valeur de l'attribut v-on ne sera tout simplement pas possible. C'est pourquoi v-on peut aussi accepter le nom d'une méthode que vous voudriez appeler.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La logique avec beaucoup de gestionnaires d'événements sera


For example:
Par exemple:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Par exemple :

(espace devant :)


``` html
<div id="example-2">
<!-- `greet` is the name of a method defined below -->
<!-- `greet` est le nom de la méthode definie ci-dessous-->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ci-dessous -->

(espace devant -->)

<button v-on:click="greet">Greet</button>
</div>
```
Expand All @@ -61,28 +61,28 @@ var example2 = new Vue({
data: {
name: 'Vue.js'
},
// define methods under the `methods` object
// Définissez les méthodes de l'objet
methods: {
greet: function (event) {
// `this` inside methods points to the Vue instance
// `this` fait référence à l'instance de Vue à l'intérieur de `methods`..
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

à l'intérieur des méthodes

(penser à retirer les ..)

alert('Hello ' + this.name + '!')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alert('Bonjour ' + this.name + ' !')

// `event` is the native DOM event
// `event` est l'événement natif du DOM
if (event) {
alert(event.target.tagName)
}
}
}
})

// you can invoke methods in JavaScript too
example2.greet() // -> 'Hello Vue.js!'
// vous pouvez également invoquer ces méthodes en JavaScript
2.greet() // -> 'Hello Vue.js!'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

example2.greet()

```

Result:
Résultat :

{% raw %}
<div id="example-2" class="demo">
<button v-on:click="greet">Greet</button>
<button v-on:click="greet">Dire bonjour</button>
</div>
<script>
var example2 = new Vue({
Expand All @@ -92,7 +92,7 @@ var example2 = new Vue({
},
methods: {
greet: function (event) {
alert('Hello ' + this.name + '!')
alert('Bonjour ' + this.name + '!')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

' !'
(espace)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alert('Bonjour ' + this.name + ' !')

(espace avant le !)

if (event) {
alert(event.target.tagName)
}
Expand All @@ -102,9 +102,9 @@ var example2 = new Vue({
</script>
{% endraw %}

## Methods in Inline Handlers
## Méthode d'écoute dans les attributs :

Instead of binding directly to a method name, we can also use methods in an inline JavaScript statement:
Au lieu de lier directement la méthode par son nom dans l'attribut, nous pouvons également utiliser la méthode avec une instruction JavaScript :

``` html
<div id="example-3">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<button v-on:click="say('salut')">Dire salut</button>
<button v-on:click="say('quoi')">Dire quoi</button>

Expand All @@ -123,7 +123,7 @@ new Vue({
})
```

Result:
Résultat:
{% raw %}
<div id="example-3" class="demo">
<button v-on:click="say('hi')">Say hi</button>
Expand All @@ -141,28 +141,28 @@ new Vue({
</script>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<button v-on:click="say('salut')">Dire salut</button>

et

<button v-on:click="say('quoi')">Dire quoi</button>

x2

{% endraw %}

Sometimes we also need to access the original DOM event in an inline statement handler. You can pass it into a method using the special `$event` variable:
Parfois nous avons également besoin d'accéder à l'événement original du DOM depuis l'instruction dans l'attribut. Vous pouvez le passer à une méthode en utilisant la variable spéciale $event :

``` html
<button v-on:click="warn('Form cannot be submitted yet.', $event)">Submit</button>
<button v-on:click="warn('Le formulaire ne peut être soumis pour le moment.', $event)">Soumettre</button>
```

``` js
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// now we have access to the native event

devient

// maintenant nous avons accès à l'événement natif

// ...
methods: {
warn: function (message, event) {
avertissement: function (message, event) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On conserve warn

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

en effet, remettre "warn"

// now we have access to the native event
if (event) event.preventDefault()
alert(message)
}
}
```

## Event Modifiers
## Modificateurs d'événements

It is a very common need to call `event.preventDefault()` or `event.stopPropagation()` inside event handlers. Although we can do this easily inside methods, it would be better if the methods can be purely about data logic rather than having to deal with DOM event details.

To address this problem, Vue provides **event modifiers** for `v-on`. Recall that modifiers are directive postfixes denoted by a dot.
C'est un besoin courant que de faire appel ā `event.preventDefault()` ou `event.stopPropagation()` à l'intérieur d'une déclaration de gestionnaire d'évènement. Bien que nous puissions réaliser ceci aisément à l'intérieur de " Methods " , il serait préférable que les méthodes restent purement dediées à la logique des données au lieu d'avoir à prendre en charge les événements du DOM en détails.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"methods" (pas de majuscule)
"au lieu d'avoir à gérer les détails des évènements du DOM"

``

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

des backsticks qui trainent

Pour résoudre ce problème, Vue propose des modificateurs d'événement pour `v-on`. Faire appel à ces modificateurs se fait grâce aux extensions d'instruction, ceux-ci commençant par un point.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rappelez-vous que les modificateurs sont des suffixes de directives indiqués par un point.


- `.stop`
- `.prevent`
Expand All @@ -171,87 +171,86 @@ To address this problem, Vue provides **event modifiers** for `v-on`. Recall tha
- `.once`

``` html
<!-- the click event's propagation will be stopped -->
<!-- la propagation de l'événement du clic sera stoppée -->
<a v-on:click.stop="doThis"></a>

<!-- the submit event will no longer reload the page -->
<!-- l'événement « submit », ne rechargera plus la page -->

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pas de virgule

<form v-on:submit.prevent="onSubmit"></form>

<!-- modifiers can be chained -->
<!-- les modificateurs peuvent être chainés -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- just the modifier -->
<!-- seulement le modificateur -->
<form v-on:submit.prevent></form>

<!-- use capture mode when adding the event listener -->
<!-- utilise le mode « capture » lorsque l'événement d'écoute est ajouté -->
<div v-on:click.capture="doThis">...</div>

<!-- only trigger handler if event.target is the element itself -->
<!-- i.e. not from a child element -->
<!-- seulement déclanché si l'instruction « event.target » est l'élément lui même.-->

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

déclenché

<!-- c-à-d : ne s'applique pas aux éléments "enfant" -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

c-à-d ne s'applique

(pas besoin de :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

« enfant »

guillemet français.

<div v-on:click.self="doThat">...</div>
```

> New in 2.1.4

``` html
<!-- the click event will be triggered at most once -->
<a v-on:click.once="doThis"></a>
<!-- l'événement « click » sera déclenché au moins une fois -->
<a v-on:click.once="faisCeci"></a>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doThis

(à conserver)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on ne traduit que les commentaires

```

Unlike the other modifiers, which are exclusive to native DOM events, the `.once` modifier can also be used on [component events](components.html#Using-v-on-with-Custom-Events). If you haven't read about components yet, don't worry about this for now.

## Key Modifiers
Au contraire des autres modificateurs, qui sont exclusifs aux événements natifs du DOM, le modificateur `.once` peut également être utilisé pour les [événements des composants](components.html#Using-v-on-with-Custom-Events). Si vous n'avez pas encore lu la section concernant les composants, ne vous en inquiétez pas pour le moment.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

événements des composants

(enlever le double espace entre événements et des)


When listening for keyboard events, we often need to check for common key codes. Vue also allows adding key modifiers for `v-on` when listening for key events:
## Modificateurs "key" (Touches)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modificateurs des contrôles clavier

(je trouve ça plus clair)

Lorsque nous écoutons les événements du clavier, nous avons régulièrement besoin de s'assurer des codes des touches. Vue permet également d'ajouter un modificateur de touches pour `v-on`:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attention, à partir d'ici il y a une ligne de retard : la phrase anglaise commence à la ligne 205

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s'assurer du code des touches

(dans ce cas précis on veut s'assurer du code de chaque touche)


``` html
<!-- only call vm.submit() when the keyCode is 13 -->
<!-- faire appel à « vm.submit() » uniquement quand le code de la touche est 13 -->
<input v-on:keyup.13="submit">
```

Remembering all the keyCodes is a hassle, so Vue provides aliases for the most commonly used keys:
Se rappeler de tous les codes des touches est compliqué, c'est pourquoi Vue propose des alias pour les touches les plus couramment employées :

``` html
<!-- same as above -->
<!-- même exemple que le précédent -->
<input v-on:keyup.enter="submit">

<!-- also works for shorthand -->
<!-- fonctionne également pour les raccourcis -->
<input @keyup.enter="submit">
```

Here's the full list of key modifier aliases:
Voici la liste complète des raccourcis de modificateur pour les touches :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

des raccourcis de modificateurs


- `.enter`
- `.tab`
- `.delete` (captures both "Delete" and "Backspace" keys)
- `.delete` (fonctionne pour les touches "Suppression" et "retour-arrière")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(fonctionne pour les touches "Suppression" et "Retour arrière")

- `.esc`
- `.space`
- `.up`
- `.down`
- `.left`
- `.right`

You can also [define custom key modifier aliases](../api/#keyCodes) via the global `config.keyCodes` object:
Vous pouvez également [definir des raccourcis personnalisés pour vos modificateurs ](../api/#keyCodes) grâce à l'objet global `config.keyCodes`:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

définir (accent)


``` js
// enable v-on:keyup.f1
// active v-on:keyup.f1
Vue.config.keyCodes.f1 = 112
```

## Modifier Keys
## Modificateurs de touches
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modificateurs de raccourcis clavier


> New in 2.1.0

You can use the following modifiers to trigger mouse or keyboard event listeners only when the corresponding modifier key is pressed:
Vous pouvez utiliser les modificateurs suivants pour déclancher un événement du clavier ou de la souris seulement lorsque la touche du modificateur correspondant est appuyé :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

déclencher
correspondante


- `.ctrl`
- `.alt`
- `.shift`
- `.meta`

> Note: On Macintosh keyboards, meta is the command key (⌘). On Windows keyboards, meta is the windows key (⊞). On Sun Microsystems keyboards, meta is marked as a solid diamond (◆). On certain keyboards, specifically MIT and Lisp machine keyboards and successors, such as the Knight keyboard, space-cadet keyboard, meta is labeled “META”. On Symbolics keyboards, meta is labeled “META” or “Meta.
> Note: Sur les claviers Macintosh, meta est la touche commande (⌘). Sur Windows, meta est la touche windows (⊞). Sur les claviers Sun Microsystems, meta est symbolisé par un diamant plein (◆). Sur certain clavier, spécifiquement sur les claviers des machines MIT et Lisp et leurs successeurs, comme le clavier « Knight » et « space-cadet », meta est ecrit « META ». Sur les claviers Symboliques, meta est etiqueté « META » ou « Meta ».

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

certainS clavierS


For example:
Par exemple:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Par exemple :

(espace)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Par exemple :

(espace avant :)


```html
<!-- Alt + C -->
Expand All @@ -261,12 +260,13 @@ For example:
<div @click.ctrl="doSomething">Do something</div>
```

## Why Listeners in HTML?
## Pourquoi des écoutes dans le code HTML ?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi des écouteurs dans le HTML ?


You might be concerned that this whole event listening approach violates the good old rules about "separation of concerns". Rest assured - since all Vue handler functions and expressions are strictly bound to the ViewModel that's handling the current view, it won't cause any maintenance difficulty. In fact, there are several benefits in using `v-on`:
Vous pouriez être preoccupé que tous ces événements d'écoutes viole la bonne vieille règle de la séparation des préoccupations.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vous pourriez être inquiets du fait que l'ensemble de cette approche d'écouteurs d'évènements (...)

Rassurez-vous - depuis que le gestionnaire de fonctions et d'expressions est strictement lié à « ViewModel » qui gère la vue courante, cela ne causera aucune difficulté de maintenance. En realité, il y a plusieurs bénéfices à utiliser `v-on` :

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • puisque toutes les fonctions et expressions sont strictement liées ...


1. It's easier to locate the handler function implementations within your JS code by simply skimming the HTML template.
1. Il est plus facile de localiser l'implementation des fonctions dans le gestionnaire de code JS en survolant le code HTML.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

implémentation.
les fonctions de gestion ( ou quelque chose approchant)


2. Since you don't have to manually attach event listeners in JS, your ViewModel code can be pure logic and DOM-free. This makes it easier to test.
2. Comme vous n'avez pas à attacher manuellement les écoutes dans votre JS, le code du « ViewModel » peut-être purement logique et sans DOM. Ceci rend plus facile les tests.

3. When a ViewModel is destroyed, all event listeners are automatically removed. You don't need to worry about cleaning it up yourself.
3. Quand un « ViewModel » est detruit, tout les evenements d'ecoutes sont automatiquenemt retiré. Vous n'avez pas à vous soucier de le faire vous-même.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

détruit