Comment commenter du code dans un fichier vue.js?


94

J'ai besoin d'insérer un commentaire dans un fichier vue.js pour de futures références, mais je ne trouve pas comment vous faites cela dans la documentation.

Je l' ai essayé //, /**/, {{-- --}}et {# #}, mais aucun d'entre eux ne semble fonctionner.

J'utilise la lame de Laravel. Voici donc le sample_file.vue:

<template>
    <div class="media">

        <like-button :post="post" v-if="post.likedByCurrentUser === false && "></like-button>  {{--I want to comment this but I get an error from the gulp watch: post.canBeLikedByCurrentUser === true--}}

        <div class="media-left">
            <a href="#">
                <img class="media-object" v-bind:src="post.user.avatar" v-bind:title="post.user.name + ' image from Gravatar'">
            </a>
        </div>
        <div class="media-body">
            <strong>{{ post.user.name }}</strong>
            <p>{{post.body}}</p>
            <p>{{post.likeCount}} {{ pluralize('like', post.likeCount) }}</p>
        </div>
    </div>
</template> 

Quelqu'un sait-il comment insérer un commentaire et / ou comment commenter des morceaux de code?


1
Si vous cherchez des commentaires sur plusieurs lignes, le commentaire HTML standard fonctionnera: <!-- -->. Mais il semble que vous recherchiez des commentaires en ligne?
Adam

Ahh, j'ai oublié d'essayer ça. C'est bien du HTMLcode! Thnx
Pathros

1
Par défaut, les commentaires HTML sont supprimés par vue vuejs.org/v2/api/#comments
Mike3355

1
La syntaxe de création de modèles de Vue est très similaire à Handlebars . Il convient de noter que Handlebars permet {{! comments like this }}et {{!-- comments {{like this}} that can contain double-braces --}}. Ceux-ci ne sont pas rendus dans la sortie, contrairement à ceux <!-- html comments -->qui le font. J'ai essayé les deux {{! ... }}et {{!-- ... --}}avec Vue, et malheureusement, ils ne sont pas pris en charge. Envisageriez-vous de les ajouter à votre question pour les utilisateurs qui tombent dessus?
chharvey

Réponses:


167

Vous voudriez utiliser des commentaires HTML standard dans la <template>balise dans votre situation. Ils seront également supprimés de la sortie, ce qui est bien.

<!-- Comment -->

Afaict, ils ne sont pas dépouillés dans Vue 3 🤷
dtk il y a

27

Comme Bill Criswell l'a dit, nous pouvons utiliser la syntaxe des commentaires HTML.

<!-- Comment -->

Mais, cela fonctionnera également en dehors de la balise de modèle, comment.vue

<!-- Testing comments, this will work too. -->

<template>
    <!-- This will work too -->

    <div>
        <!-- Html Comments -->
        Hello There!
    </div>
</template>

<style><style>

<!-- Commenting here -->

<script>
    // Commenting only 1 line

    /**
      * Commenting multiple lines
      * Commenting multiple lines
      */
</script>

1
Il en résulte un «jeton inattendu (1: 1)» avec Vue 2.5.13.
Alen Siljak

J'avais l'habitude de commenter en dehors des balises racine prises en charge et je trouvais que cela posait des problèmes en fonction du contenu des commentaires. Je souhaite que vue supporte les commentaires en dehors des balises racine car c'est l'endroit le plus judicieux pour créer des README et autres, mais bon.
aaaaaa

Au lieu d'utiliser des commentaires en dehors des onglets racine pris en charge, utilisez-y des balises valides. <comment>Commenting here</comment. Vous devrez les ajouter à votre configuration Webpack. vue-loader.vuejs.org/guide/custom-blocks.html#example
David R.

18

Je viens de tester ceci:

<template>
    {{ /* this is a comment */ }}
    <h1>Hello world</h1>
</template>

2
Cool, il n'apparaît pas dans la sortie html. Mais seuls les commentaires d'une ligne sont pris en charge avec cette syntaxe.
d9k

Malheureusement, je ne peux pas faire fonctionner cela:Error parsing JavaScript expression: Unexpected token (1:24)
dtk il y a

9

J'ai remarqué que vous ne pouvez pas commenter lorsque vous êtes à l'intérieur d'une balise:

<!-- make sure it is outside a tag -->

<autocomplete
<!-- you can't place the comment out in here -->
>
</autocomplete>

4

Vue Styleguidist contient les meilleures pratiques et montre des exemples de comment commenter vos composants. https://vue-styleguidist.github.io/docs/Documenting.html#code-comments

Mais en général...

Dans le modèle ou la section HTML, utilisez des commentaires HTML

<!-- Comment -->

Dans la section de script , utilisez des commentaires Javascript

// Comment
/* Comment */

Dans la section style , utilisez les commentaires CSS

/* comment */

4

Si cela est utile pour vos projets, vous pouvez mettre du texte brut au-dessus du modèle sans ornement. Il est complètement ignoré lors du rendu de votre composant.

This is some documentation about this component
   - some
   - info
<template></template>
<script></script>
<style></style>

0

Le conseil suivant ne concerne pas tant le commentaire (comme la documentation) du code en soi, mais plutôt le fait de vous permettre de sauter temporairement des morceaux de code pendant le développement.

Lorsque les commentaires nécessitent l'ouverture et la fermeture de balises, la manière dont l'analyseur les associe peut être peu pratique. Par exemple ce qui suit

<!-- I want to comment this <!-- this --> and that --> 

sortira and that -->. De même /* this will be commented /* and so will this */ but not this */.

Ma solution est d'utiliser v-if="false"pour spécifier les blocs que je souhaite ignorer (temporairement).

<template>
<div>
    Hello
    <div v-if="false">
        Vue will not process whatever's in here.
    </div>
    World!
</div>
</template>

Notez que cela ne doit pas être utilisé en remplacement des commentaires appropriés pour documenter votre code. C'est juste un moyen pratique d'avoir plus de contrôle sur les blocs que vous souhaitez ignorer pendant le développement.


-2

Je suis noob dans Vue.js, mais //devrait fonctionner car le code est de toute façon javascript. En regardant dans la documentation, je trouve cet exemple . Si vous regardez les 2 premières lignes de javascript, vous verrez des commentaires avec //.

exemple dans un fichier lié javascript:

// Full spec-compliant TodoMVC with localStorage persistence
// and hash-based routing in ~120 effective lines of JavaScript.

...

1
Cependant, cela ne fonctionne pas à l'intérieur de la templatebalise, mais à l'intérieur de la scriptbalise
Pavindu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.