VueJS - szablon

W poprzednich rozdziałach dowiedzieliśmy się, jak uzyskać wynik w postaci treści tekstowej na ekranie. W tym rozdziale dowiemy się, jak uzyskać na ekranie wynik w postaci szablonu HTML.

Aby to zrozumieć, rozważmy przykład i zobaczmy wynik w przeglądarce.

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "vue_det">
         <h1>Firstname : {{firstname}}</h1>
         <h1>Lastname : {{lastname}}</h1>
         <div>{{htmlcontent}}</div>
      </div>
      <script type = "text/javascript" src = "js/vue_template.js"></script>
   </body>
</html>

vue_template.js

var vm = new Vue({
   el: '#vue_det',
   data: {
      firstname : "Ria",
      lastname  : "Singh",
      htmlcontent : "<div><h1>Vue Js Template</h1></div>"
   }
})

Teraz załóżmy, że chcemy wyświetlić zawartość HTML na stronie. Jeśli zdarzy się, że użyjemy go z interpolacją, czyli z podwójnymi nawiasami klamrowymi, to właśnie otrzymamy w przeglądarce.

Jeśli widzimy, że treść html jest wyświetlana w taki sam sposób, jak podaliśmy w zmiennej htmlcontent, to nie jest to, czego chcemy, chcemy, aby była wyświetlana w odpowiedniej treści HTML w przeglądarce.

Do tego będziemy musieli użyć v-htmldyrektywa. W momencie, gdy przypisujemy dyrektywę v-html do elementu html, VueJS wie, że musi wyprowadzić ją jako treść HTML. Dodajmy dyrektywę v-html w.html plik i zobacz różnicę.

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "vue_det">
         <h1>Firstname : {{firstname}}</h1>
         <h1>Lastname : {{lastname}}</h1>
         <div v-html = "htmlcontent"></div>
      </div>
      <script type = "text/javascript" src = "js/vue_template.js"></script>
   </body>
</html>

Teraz nie potrzebujemy podwójnych nawiasów klamrowych, aby wyświetlić zawartość HTML, zamiast tego użyliśmy v-html = ”htmlcontent”, gdzie htmlcontent jest zdefiniowana wewnątrz js plik w następujący sposób -

var vm = new Vue({
   el: '#vue_det',
   data: {
      firstname : "Ria",
      lastname  : "Singh",
      htmlcontent : "<div><h1>Vue Js Template</h1></div>"
   }
})

Dane wyjściowe w przeglądarce są następujące -

Jeśli sprawdzimy przeglądarkę, zobaczymy, że treść jest dodawana w taki sam sposób, jak jest zdefiniowana w .js plik do zmiennej htmlcontent : "<div><h1>Vue Js Template</h1></div>".

Przyjrzyjmy się elementowi inspect w przeglądarce.

Widzieliśmy, jak dodać szablon HTML do DOM. Teraz zobaczymy, jak dodać atrybuty do wychodzących elementów HTML.

Weź pod uwagę, że mamy tag obrazu w pliku HTML i chcemy przypisać src, który jest częścią Vue.

Przykład

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "vue_det">
         <h1>Firstname : {{firstname}}</h1>
         <h1>Lastname : {{lastname}}</h1>
         <div v-html = "htmlcontent"></div>
         <img src = "" width = "300" height = "250" />
      </div>
      <script type = "text/javascript" src = "js/vue_template1.js"></script>
   </body>
</html>

Spójrz na powyższy tag img, src jest pusty. Musimy dodać do niego src z vue js. Przyjrzyjmy się, jak to zrobić. Będziemy przechowywać img src w obiekcie danych w pliku.js plik w następujący sposób -

var vm = new Vue({
   el: '#vue_det',
   data: {
      firstname : "Ria",
      lastname  : "Singh",
      htmlcontent : "<div><h1>Vue Js Template</h1></div>",
      imgsrc : "images/img.jpg"
   }
})

Jeśli przypiszemy src w następujący sposób, dane wyjściowe w przeglądarce będą wyglądać tak, jak pokazano na poniższym zrzucie ekranu.

<img src = "{{imgsrc}}" width = "300" height = "250" />

Otrzymujemy uszkodzony obraz. Aby przypisać dowolny atrybut do tagu HMTL, musimy użyćv-binddyrektywa. Dodajmy src do obrazu z dyrektywą v-bind.

W ten sposób jest przypisywany .html plik.

<html>
   <head>
      <title>VueJs Instance</title>
      <script type = "text/javascript" src = "js/vue.js"></script>
   </head>
   <body>
      <div id = "vue_det">
         <h1>Firstname : {{firstname}}</h1>
         <h1>Lastname : {{lastname}}</h1>
         <div v-html = "htmlcontent"></div>
         <img v-bind:src = "imgsrc" width = "300" height = "250" />
      </div>
      <script type = "text/javascript" src = "js/vue_template1.js"></script>
   </body>
</html>

Musimy poprzedzić src ciągiem v-bind:src = ”imgsrc” i nazwę zmiennej z src.

Poniżej przedstawiono dane wyjściowe w przeglądarce.

Przyjrzyjmy się i sprawdźmy, jak wygląda src z v-bind.

Jak widać na powyższym zrzucie ekranu, src jest przypisywany bez żadnych właściwości vuejs.