Como comentar o código em um arquivo vue.js?


98

Preciso inserir um comentário dentro de um arquivo vue.js para referências futuras, mas não encontro como fazer isso na documentação.

Eu tentei //, /**/, {{-- --}}, e {# #}, mas nenhum deles parece funcionar.

Estou usando a lâmina do Laravel. Então este é o 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> 

Alguém sabe inserir um comentário e / ou comentar trechos de código?


1
Se você está à procura de multi-linha comentando, o comentário HTML padrão vai funcionar: <!-- -->. Mas parece que você está procurando comentários embutidos?
Adam

Ahh, esqueci de tentar isso. Na verdade, é um HTMLcódigo! Thnx
Patros

1
Por padrão, os comentários HTML são removidos por vue vuejs.org/v2/api/#comments
Mike3355

1
A sintaxe de modelos do Vue é muito semelhante ao Handlebars . É importante notar que o guiador permite {{! comments like this }}e {{!-- comments {{like this}} that can contain double-braces --}}. Eles não são renderizados na saída, ao contrário de <!-- html comments -->quais são. Tentei os dois {{! ... }}e {{!-- ... --}}com o Vue, mas infelizmente não são compatíveis. Você consideraria adicioná-los à sua pergunta para os usuários que toparem com ela?
chharvey

Respostas:


174

Você gostaria de usar comentários HTML padrão na <template>tag em sua situação. Eles serão retirados da saída também, o que é bom.

<!-- Comment -->

1
Afaict, eles não são removidos em Vue 3 🤷
dtk

Sim, isso está quebrando meus modelos no Vue 3
Adam Starrh

32

Como disse Bill Criswell, podemos usar a sintaxe de comentário HTML.

<!-- Comment -->

Mas também funcionará fora da tag template, 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
Isso resulta em "Token inesperado (1: 1)" com Vue 2.5.13.
Alen Siljak

Eu costumava comentar fora das tags raiz suportadas e descobri que isso causava problemas dependendo do conteúdo dos comentários. Eu gostaria que o vue apoiasse comentários fora das tags raiz porque é o lugar mais sensato para criar READMEs e tal, mas tudo bem.
aaaaaa de

Em vez de usar comentários fora das guias raiz suportadas, use tags válidas lá. <comment>Commenting here</comment. Você terá que adicioná-los à configuração do seu webpack. vue-loader.vuejs.org/guide/custom-blocks.html#example
David R.

18

Acabei de testar isto:

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

2
Legal, não aparece na saída html. Mas apenas comentários de uma linha são suportados com esta sintaxe.
d9k

Infelizmente, não consigo fazer isso funcionar:Error parsing JavaScript expression: Unexpected token (1:24)
dtk

9

Percebi que você não pode comentar quando está dentro de uma tag:

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

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

6

Se for útil para seus projetos, você pode colocar texto simples acima do modelo, sem adornos. Ele é completamente ignorado quando você renderiza seu componente.

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


0

A dica a seguir não é tanto sobre comentar (como documentar) o código em si, mas sim sobre permitir que você ignore temporariamente partes do código durante o desenvolvimento.

Quando os comentários exigem a abertura e o fechamento de tags, a maneira como o analisador os corresponde pode ser inconveniente. Por exemplo o seguinte

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

irá produzir and that -->. Da mesma forma /* this will be commented /* and so will this */ but not this */.

Minha solução é usar v-if="false"para especificar quais blocos eu quero (temporariamente) pular.

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

Observe que isso não deve ser usado em substituição aos comentários adequados para documentar seu código. É apenas uma maneira conveniente de ter mais controle sobre os blocos que deseja pular durante o desenvolvimento.


-2

Eu sou novato no Vue.js, mas //deve funcionar porque o código é javascript mesmo assim. Olhando na documentação encontro este exemplo . Se você olhar as 2 primeiras linhas do javascript, verá comentários com //.

exemplo em arquivo vinculado a javascript:

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

...

1
No entanto, isso não funciona dentro da templatetag, mas dentro da scripttag
Pavindu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.