Bagaimana cara memberi komentar kode di file vue.js?

94

Saya memiliki kebutuhan untuk memasukkan komentar di dalam file vue.js untuk referensi di masa mendatang, tetapi saya tidak menemukan cara Anda melakukan ini di dokumen.

Saya telah mencoba //, /**/, {{-- --}}, dan {# #}, namun tidak satupun dari mereka tampaknya bekerja.

Saya menggunakan pisau Laravel. Jadi ini adalah 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> 

Adakah yang tahu cara memasukkan komentar dan / atau cara memberi komentar pada potongan kode?

Pathros
sumber
1
Jika Anda mencari untuk multi-line komentar, standar html komentar akan bekerja: <!-- -->. Tapi sepertinya Anda mencari komentar sebaris?
Adam
Ahh, saya lupa mencobanya. Ini memang HTMLkode! Thnx
Pathros
1
Secara default, komentar HTML dihapus oleh vue vuejs.org/v2/api/#comments
Mike3355
1
Sintaks templating Vue sangat mirip dengan Handlebars . Perlu dicatat bahwa Handlebars memungkinkan {{! comments like this }}dan {{!-- comments {{like this}} that can contain double-braces --}}. Ini tidak dirender dalam output, tidak seperti <!-- html comments -->yang dilakukan. Saya mencoba keduanya {{! ... }}dan {{!-- ... --}}dengan Vue, dan sayangnya mereka tidak didukung. Apakah Anda akan mempertimbangkan untuk menambahkannya ke pertanyaan Anda untuk pengguna yang menemukannya?
chharvey

Jawaban:

167

Anda ingin menggunakan komentar HTML standar di <template>tag dalam situasi Anda. Mereka akan dilucuti dari output juga yang bagus.

<!-- Comment -->
Bill Criswell
sumber
Afaict, mereka tidak dilucuti di Vue 3 🤷
dtk
27

Seperti yang dikatakan Bill Criswell, kita dapat menggunakan sintaks komentar HTML.

<!-- Comment -->

Tapi, Ini akan bekerja di luar tag template juga, 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>
Vaisakh Rajagopal
sumber
1
Ini menghasilkan "Token tak terduga (1: 1)" dengan Vue 2.5.13.
Alen Siljak
Saya biasa berkomentar di luar tag root yang didukung dan menemukan itu menyebabkan masalah tergantung pada konten komentar. Saya berharap vue mendukung komentar di luar tag root karena ini adalah tempat paling masuk akal untuk membuat README dan semacamnya, tapi oh well.
aaaaaa
Alih-alih menggunakan komentar di luar tab akar yang didukung, gunakan tag yang valid di sana. <comment>Commenting here</comment. Anda harus menambahkan ini ke konfigurasi webpack Anda. vue-loader.vuejs.org/guide/custom-blocks.html#example
David R.
18

Saya baru saja menguji ini:

<template>
    {{ /* this is a comment */ }}
    <h1>Hello world</h1>
</template>
Fulldump
sumber
2
Keren, itu tidak muncul dalam keluaran html. Tetapi hanya satu baris-komentar yang didukung dengan sintaks ini.
d9k
Sayangnya, saya tidak bisa membuat ini berfungsi:Error parsing JavaScript expression: Unexpected token (1:24)
dtk
9

Saya perhatikan bahwa Anda tidak dapat berkomentar ketika Anda berada di dalam tag:

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

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

Vue Styleguidist berisi praktik terbaik dan menunjukkan contoh cara mengomentari komponen Anda. https://vue-styleguidist.github.io/docs/Documenting.html#code-comments

Tapi secara Umum ...

Di bagian template atau HTML gunakan komentar HTML

<!-- Comment -->

Di bagian script gunakan komentar Javascript

// Comment
/* Comment */

Di bagian gaya gunakan komentar CSS

/* comment */
ScottyG
sumber
4

Jika berguna untuk proyek Anda, Anda dapat meletakkan teks biasa di atas template tanpa hiasan. Ini benar-benar diabaikan saat Anda merender komponen Anda.

This is some documentation about this component
   - some
   - info
<template></template>
<script></script>
<style></style>
Rory Jarrard
sumber
0

Tip berikut ini bukan tentang mengomentari (seperti dalam mendokumentasikan) kode itu sendiri, melainkan tentang memungkinkan Anda untuk sementara melewati potongan kode selama pengembangan.

Jika komentar memerlukan tag pembuka dan penutup, cara pengurai cocok dengan mereka bisa jadi tidak nyaman. Misalnya berikut ini

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

akan mengeluarkan and that -->. Demikian pula /* this will be commented /* and so will this */ but not this */.

Solusi saya adalah menggunakan v-if="false"untuk menentukan blok mana yang ingin saya lewati (sementara).

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

Perhatikan bahwa ini tidak boleh digunakan sebagai pengganti komentar yang tepat untuk mendokumentasikan kode Anda. Ini hanya cara mudah untuk memiliki lebih banyak kontrol atas blok yang ingin Anda lewati selama pengembangan.

Michael Ekoka
sumber
-2

Saya noob di Vue.js, tetapi //harus berfungsi karena kodenya adalah javascript. Mencari di dokumen saya menemukan contoh ini . Jika Anda melihat 2 baris pertama javascript, Anda akan melihat komentar dengan //.

contoh dalam file terkait javascript:

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

...
Juan
sumber
1
Namun, ini tidak berfungsi di dalam templatetag, tetapi di dalam scripttag
Pavindu