您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么理解Vue中的模板語法插值和指令”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么理解Vue中的模板語法插值和指令”吧!
Vue有很多模板語法特別好用,就是在HTML中寫一些Vue定義的一些模板語法,可以快速的展現數據,綁定方法等。這也就是Vue上手很快的原因之一。
我們先來理解理解什么是模板?
模板就是動態html頁面,這里面包含了一些js語法代碼
Vue的模板語法分為兩種,分別是:
【插值語法】雙大括號表達式 (“Mustache”語法)【一個】
【指令語法】指令(以v-開頭的自定義標簽屬性)【很多】
1、插值語法:
功能:用于解析標簽體內容,向頁面輸出數據
寫法:{{xxx}}
,xxx是js表達式,且可以直接讀取到data中的所有屬性,可以調用對象的方法
備注:里面寫js表達式:有返回值的js代碼,而不是js語句
2、指令語法:
功能:用于解析標簽(包括:標簽屬性、標簽體內容、綁定事件.....)
舉例:v-bind:href="xxx"
或 簡寫為 :href="xxx"
,xxx同樣要寫js表達式,且可以直接讀取到data中的所有屬性
備注:Vue中有很多的指令,且形式都是:v-????
下面我們來介紹幾個常用的指令語法。
v-bind:
功能:指定變化的屬性值
完整寫法
v-bind:xxx='yyy' // yyy會作為表達式解析執行
簡潔寫法
:xxx='yyy'
語法:v-bind:href ="xxx"
或簡寫為 :href ="xxx"
特點:數據只能從 data 流向頁面
v-model
語法:v-mode:value="xxx"
或簡寫為 v-model="xxx"
特點:數據不僅能從 data 流向頁面,還能從頁面流向 data
v-on:
功能:綁定指定事件名的回調函數
完整寫法
v-on:click='xxx' v-on:keyup='xxx(參數)' v-on:keyup.enter='xxx'
簡潔寫法
@click='xxx' @keyup='xxx' @keyup.enter='xxx'
v-text
作用:向其所在的節點中渲染文本內容。
與插值語法的區別:v-text
會替換掉節點中的內容,{{xx}}
則不會。
v-html
1、作用:向指定節點中渲染包含html結構的內容。
2、與插值語法的區別:
(1).v-html
會替換掉節點中所有的內容,{{xx}}
則不會。
(2).v-html
可以識別html結構。
3、嚴重注意:v-html
有安全性問題!!!!
(1). 在網站上動態渲染任意HTML是非常危險的,容易導致XSS攻擊。
(2). 一定要在可信的內容上使用v-html
,永不要用在用戶提交的內容上!
<body> <div id='app'> <h3>1. 大括號表達式</h3> <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> <h3>2. 指令一: 強制數據綁定</h3> <img src="imgUrl" alt="Vue"> <!--無法顯示圖片,沒有識別成js表達式 --> <img v-bind:src="imgUrl" alt="Vue"> <!--屬性值識別成js表達式 --> <img :src="imgUrl" alt="Vue"> <h3>3. 指令二: 綁定事件監聽</h3> <button v-on:click="test1">test1</button> <button @click="test1">test1</button> <button @click="test2('abc')">test2</button> <!--可以傳參數 --> <button @click="test2(msg)">test2</button> </div> <script src="../js/vue.js"></script> <script> new Vue({ el: '#app', data: { msg: '<a href="http:www.baidu.com">I Will Back!</a>', imgUrl: "https://cn.vuejs.org/images/logo.png" }, methods: { test1() { alert('heheh'); }, test2(content){ alert(content); } } }) </script> </body>
移除標簽刪除
v-if
v-else
寫法:
v-if="表達式"
v-else-if="表達式"
v-else="表達式"
適用于:切換頻率較低的場景。 特點:不展示的DOM元素直接被移除。 注意:v-if可以和:v-else-if、v-else一起使用,但要求結構不能被“打斷”。
添加樣式隱藏(display: none)
v-show
寫法:v-show="表達式"
適用于:切換頻率較高的場景。
特點:不展示的DOM元素未被移除,僅僅是使用樣式隱藏掉
【備注】使用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: '#demo', data: { ok: false, } }) </script> </body>
一些常用的指令
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 }
到此,相信大家對“怎么理解Vue中的模板語法插值和指令”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。