วิธีใส่รหัสความคิดเห็นในไฟล์ vue.js


94

ฉันจำเป็นต้องแทรกความคิดเห็นในไฟล์ vue.js สำหรับการอ้างอิงในอนาคต แต่ฉันไม่พบวิธีที่คุณทำในเอกสารนี้

ฉันได้พยายาม//, /**/, {{-- --}}และ{# #}แต่ไม่มีของพวกเขาดูเหมือนจะทำงาน

ฉันใช้ใบมีดของ Laravel นี่คือ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> 

ใครทราบวิธีแทรกความคิดเห็นและ / หรือวิธีแสดงความคิดเห็นของโค้ด


1
หากคุณกำลังมองหาหลายสายการแสดงความคิดเห็นแสดงความคิดเห็น HTML <!-- -->มาตรฐานจะทำงาน: แต่ดูเหมือนว่าคุณกำลังมองหาการแสดงความคิดเห็นแบบอินไลน์?
อดัม

อ่าลืมลองไป มันคือHTMLรหัส! Thnx
Pathros

1
โดยค่าเริ่มต้นความคิดเห็น HTML จะถูกลบออกโดย vue vuejs.org/v2/api/#comments
Mike3355

1
ไวยากรณ์ของเทมเพลตของ Vue นั้นคล้ายกับHandlebarsมาก มันน่าสังเกตว่า Handlebars อนุญาตและ{{! comments like this }} {{!-- comments {{like this}} that can contain double-braces --}}สิ่งเหล่านี้ไม่ได้รับการแสดงผลในเอาต์พุต<!-- html comments -->ซึ่งแตกต่างจากที่ทำ ฉันพยายามทั้งสอง{{! ... }}และ{{!-- ... --}}มีวูและน่าเสียดายที่พวกเขาไม่ได้รับการสนับสนุน คุณจะพิจารณาเพิ่มคำถามของคุณสำหรับผู้ใช้ที่สะดุดกับคำถามนี้หรือไม่?
chharvey

คำตอบ:


167

คุณต้องการใช้ความคิดเห็น HTML มาตรฐานใน<template>แท็กในสถานการณ์ของคุณ พวกเขาจะถูกถอดออกจากผลผลิตเช่นกันซึ่งเป็นสิ่งที่ดี

<!-- Comment -->

Afaict พวกเขาไม่ได้ถูกปล้นใน Vue 3 🤷
dtk

27

ดังที่ Bill Criswell กล่าวว่าเราสามารถใช้ไวยากรณ์ความคิดเห็น HTML ได้

<!-- Comment -->

แต่มันจะทำงานนอกแท็กเทมเพลตด้วยเช่นกัน 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
ผลลัพธ์นี้เป็น "โทเค็นที่ไม่คาดคิด (1: 1)" พร้อม Vue 2.5.13
Alen Siljak

ฉันเคยแสดงความคิดเห็นนอกแท็กรูทที่รองรับและพบว่ามันทำให้เกิดปัญหาขึ้นอยู่กับเนื้อหาของความคิดเห็น ฉันหวังว่า vue จะได้รับการสนับสนุนความคิดเห็นนอกแท็กรูทเนื่องจากเป็นสถานที่ที่เหมาะสมที่สุดในการสร้าง READMEs และอื่น ๆ
aaaaaa

แทนที่จะใช้ความคิดเห็นนอกแท็บรูทที่รองรับให้ใช้แท็กที่ถูกต้องที่นั่น <comment>Commenting here</comment. คุณจะต้องเพิ่มสิ่งเหล่านี้ในการกำหนดค่า webpack ของคุณ vue-loader.vuejs.org/guide/custom-blocks.html#example
David R.

18

ฉันเพิ่งทดสอบสิ่งนี้:

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

2
เจ๋งไม่ปรากฏในเอาต์พุต html แต่รองรับไวยากรณ์นี้เพียงบรรทัดเดียวเท่านั้น
d9k

น่าเสียดายที่ฉันไม่สามารถใช้งานได้:Error parsing JavaScript expression: Unexpected token (1:24)
dtk

9

ฉันสังเกตเห็นว่าคุณไม่สามารถแสดงความคิดเห็นได้เมื่ออยู่ในแท็ก:

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

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

4

Vue Styleguidist มีแนวทางปฏิบัติที่ดีที่สุดและแสดงตัวอย่างวิธีแสดงความคิดเห็นส่วนประกอบของคุณ https://vue-styleguidist.github.io/docs/Documenting.html#code-comments

แต่โดยทั่วไป ...

ในเทมเพลตหรือส่วน HTML ใช้ความคิดเห็น HTML

<!-- Comment -->

ในส่วนสคริปต์ให้ใช้ความคิดเห็น Javascript

// Comment
/* Comment */

ในส่วนสไตล์ใช้ความคิดเห็น CSS

/* comment */

4

หากเป็นประโยชน์สำหรับโครงการของคุณคุณสามารถวางข้อความธรรมดาไว้เหนือเทมเพลตโดยไม่มีการประดับประดา จะถูกละเว้นโดยสิ้นเชิงเมื่อคุณแสดงองค์ประกอบของคุณ

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

0

เคล็ดลับต่อไปนี้ไม่มากเกี่ยวกับการแสดงความคิดเห็น (เช่นเดียวกับการจัดทำเอกสาร) รหัสต่อ se แต่เป็นการอนุญาตให้คุณข้ามส่วนของโค้ดชั่วคราวระหว่างการพัฒนา

เมื่อความคิดเห็นต้องการการเปิดและปิดแท็กวิธีที่โปรแกรมแยกวิเคราะห์จับคู่อาจไม่สะดวก ตัวอย่างเช่นต่อไปนี้

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

and that -->ออกจะ ในทำนองเดียวกัน/* this will be commented /* and so will this */ but not this */.

วิธีแก้ปัญหาของฉันคือใช้v-if="false"เพื่อระบุว่าฉันต้องการข้ามบล็อกใด (ชั่วคราว)

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

โปรดทราบว่าไม่ควรใช้สิ่งนี้เพื่อแทนที่ความคิดเห็นที่เหมาะสมในการจัดทำเอกสารรหัสของคุณ เป็นเพียงวิธีที่สะดวกในการควบคุมบล็อกที่คุณต้องการข้ามระหว่างการพัฒนาได้มากขึ้น


-2

ฉันเป็น noob ใน Vue.js แต่//ควรใช้งานได้เพราะโค้ดเป็นจาวาสคริปต์ มองในเอกสารฉันพบตัวอย่างนี้ หากคุณดู 2 บรรทัดแรกของจาวาสคริปต์คุณจะเห็นความคิดเห็นด้วย//บรรทัดจาวาสคริปต์คุณจะเห็นความเห็นด้วย

ตัวอย่างในไฟล์ที่เชื่อมโยงกับจาวาสคริปต์:

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

...

1
อย่างไรก็ตามสิ่งนี้ใช้ไม่ได้ในtemplateแท็ก แต่อยู่ในscriptแท็ก
Pavindu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.