Rumah > hujung hadapan web > View.js > Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan

Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan

青灯夜游
Lepaskan: 2021-11-17 19:42:42
ke hadapan
2208 orang telah melayarinya

Artikel ini membawa anda melalui sintaks templat dalam Vue dan memperkenalkan sintaks interpolasi dan sintaks arahan. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.

Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan

Vue mempunyai banyak sintaks templat yang amat mudah digunakan Anda boleh menulis beberapa sintaks templat yang ditakrifkan oleh Vue dalam HTML untuk memaparkan data dengan cepat, kaedah pengikatan, dsb. Ini adalah salah satu sebab mengapa Vue begitu cepat untuk bermula.

1. Memahami templat

Mari kita fahami apa itu templat?

Templat ialah halaman html dinamik, yang mengandungi beberapa kod sintaks js

Sintaks templat Vue terbahagi kepada dua jenis, Ia adalah:

  • [Sintaks Interpolasi] Ungkapan pendakap berganda (sintaks "Mustache") [Satu]
  • [Sintaks Arahan] Arahan (label tersuai bermula dengan v- Atribut) [banyak ]

1. Sintaks interpolasi:

  • Fungsi: digunakan untuk menghuraikan kandungan kandungan teg dan mengeluarkan data ke halaman
  • Penulisan: {{xxx}}, xxx ialah ungkapan js, dan boleh membaca terus semua atribut dalam data, dan boleh memanggil kaedah objek
  • Nota: tulis ungkapan js di dalamnya: terdapat nilai pulangan kod js, bukannya penyataan js

2. Sintaks arahan:

  • Fungsi: digunakan untuk menghuraikan teg (termasuk: atribut teg, isi teg Kandungan, peristiwa mengikat...)
  • Contoh: v-bind:href="xxx" atau disingkatkan sebagai :href="xxx", xxx juga perlu menulis ungkapan js dan boleh membaca terus semua atribut dalam data
  • Nota: Terdapat banyak arahan dalam Vue, dan borangnya ialah: v-????

[Cadangan berkaitan: "tutorial vue.js"]

Mari perkenalkan beberapa sintaks arahan biasa di bawah.

2. Sintaks perintah: Paksa data mengikat v-bind:

Fungsi: Tentukan menukar nilai atribut

Tulisan penuh

v-bind:xxx='yyy'  // yyy会作为表达式解析执行
Salin selepas log masuk

Penulisan ringkas

:xxx='yyy'
Salin selepas log masuk

Pengikatan data sehala

  • Sintaks: v-bind:href ="xxx" atau disingkatkan sebagai :href ="xxx"

  • Ciri: Data hanya boleh mengalir dari data ke halaman

Arahan pengikatan data dua halav-model

  • Sintaks: v-mode:value="xxx" Atau disingkatkan sebagai v-model="xxx"

  • Ciri: Data bukan sahaja boleh mengalir dari data ke halaman, tetapi juga dari halaman ke data

3. Sintaks Arahan: Ikat pendengar acara v-on:

Fungsi: Ikat fungsi panggil balik nama acara yang ditentukan

Tulisan lengkap

v-on:click='xxx'
v-on:keyup='xxx(参数)'
v-on:keyup.enter='xxx'
Salin selepas log masuk

Tulisan ringkas

@click='xxx'
@keyup='xxx'
@keyup.enter='xxx'
Salin selepas log masuk

4. teks v dan v-html

v-text

  • Fungsi: Memaparkan kandungan teks ke nod di mana ia berada. Perbezaan antara

  • dan sintaks interpolasi: v-text akan menggantikan kandungan dalam nod, tetapi {{xx}} tidak akan.

v-html

1. Fungsi: Menghasilkan kandungan yang mengandungi struktur html kepada nod yang ditentukan.

2. Perbezaan daripada sintaks interpolasi:

  • (1 v-html akan menggantikan semua kandungan dalam nod, tetapi {{xx}} tidak.
  • (2).v-html boleh mengenal pasti struktur html.

3. Perhatian serius: v-htmlTerdapat isu keselamatan! ! ! !

  • (1) Memaparkan HTML sewenang-wenangnya secara dinamik pada tapak web adalah sangat berbahaya dan boleh menyebabkan serangan XSS dengan mudah.
  • (2). Sentiasa gunakan v-html pada kandungan yang dipercayai, jangan sekali-kali pada kandungan yang diserahkan pengguna!
<body>
    <div id=&#39;app&#39;>

        <h2>1. 大括号表达式</h2>
        <p>{{msg}}</p>    <!--textContent -->
        <p>{{msg.toUpperCase()}}</p>

        <p v-html="msg"></p> <!--innerHTML -->

        <p v-text="msg"></p> <!--textContent -->
        <p v-text="msg.toUpperCase()"></p>


        <h2>2. 指令一: 强制数据绑定</h2>
        <img src="imgUrl" alt="Vue">  <!--无法显示图片,没有识别成js表达式 -->
        <img v-bind:src="imgUrl" alt="Vue"> <!--属性值识别成js表达式 -->
        <img :src="imgUrl" alt="Vue">


        <h2>3. 指令二: 绑定事件监听</h2>
        <button v-on:click="test1">test1</button>
        <button @click="test1">test1</button>
        
        <button @click="test2(&#39;abc&#39;)">test2</button> <!--可以传参数 -->
        <button @click="test2(msg)">test2</button>
    </div>



    <script src="../js/vue.js"></script>
    <script>
        new Vue({
            el: &#39;#app&#39;,
            data: {
                msg: &#39;<a href="http:www.baidu.com">I Will Back!</a>&#39;,
                imgUrl: "https://cn.vuejs.org/images/logo.png"
            },
            methods: {
                test1() {
                    alert(&#39;heheh&#39;);
                },
                test2(content){
                    alert(content);
                }
            }

        })
    </script>
</body>
Salin selepas log masuk

Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan

5 Arahan pemaparan bersyarat

Alih keluar pemadaman teg

  • v-jika
  • v-else

Penulisan:

  1. v-if="表达式"
  2. v-else-if="表达式"
  3. v-else="表达式"

Terpakai kepada: senario dengan frekuensi pensuisan rendah. Ciri: Unsur DOM yang tidak dipaparkan akan dialih keluar secara langsung. Nota: v-if boleh digunakan bersama-sama dengan: v-else-if dan v-else, tetapi struktur tidak boleh "terganggu".

Tambah gaya penyembunyian (paparan: tiada)

  • v-show

Penulisan: v-show="表达式" Berkenaan dengan: suis Senario dengan kekerapan yang lebih tinggi. Ciri-ciri: Elemen DOM yang tidak dipaparkan belum dialih keluar, ia hanya disembunyikan menggunakan gaya

[Nota] Apabila menggunakan v-if, elemen itu mungkin tidak diperoleh, tetapi ia pasti boleh diperoleh menggunakan v- tunjuk.

比较v-if与v-show

v-if是控制元素是否加载到页面上(有性能开销) v-show是控制元素的显示与隐藏 (初始创建时加载一次)

  • 如果需要频繁切换 v-show 较好
  • 当条件不成立时, v-if 的所有子节点不会解析
<body>
    <div id="demo">

        <p v-if="ok">成功了</p> <!-- 移除标签删除 -->
        <p v-else>失败了</p>

        <p v-show="ok">又成功了</p> <!-- 添加样式隐藏 -->
        <p v-show="!ok">又失败了</p>

        <button @click="ok = !ok">切换</button>
    </div>

    <script src="../js/vue.js"></script>
    <script>
        new Vue({
            el: &#39;#demo&#39;,
            data: {
                ok: false,
            }
        })
    </script>
</body>
Salin selepas log masuk

Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan

6. 总结

一些常用的指令

  • v-text : 更新元素的 textContent
  • v-html : 更新元素的 innerHTML
  • v-if : 如果为true, 当前标签才会输出到页面
  • v-else: 如果为false, 当前标签才会输出到页面
  • v-show : 通过控制display样式来控制显示/隐藏
  • v-for : 遍历数组/对象
  • v-on : 绑定事件监听, 一般简写为@
  • v-bind : 强制绑定解析表达式, 可以省略v-bind
  • v-model : 双向数据绑定
  • ref : 为某个元素注册一个唯一标识, vue对象通过$refs属性访问这个元素对象
  • v-cloak : 使用它防止闪现表达式, 与css配合: [v-cloak] { display: none }

更多编程相关知识,请访问:编程入门!!

Atas ialah kandungan terperinci Analisis mendalam sintaks templat dalam Vue: interpolasi dan arahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
vue
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan