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?


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 -->

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>

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>

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>


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>

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.


-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.

...

1
Namun, ini tidak berfungsi di dalam templatetag, tetapi di dalam scripttag
Pavindu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.