站長資訊網
最全最豐富的資訊網站

一文詳解vue指令及其過濾器(附代碼示例)

本篇文章給大家帶來了關于前端vue的相關知識,聊聊什么是內容渲染指令以及屬性綁定指令等等,感興趣的朋友,下面一起來看一下吧,希望對需要的朋友有所幫助!

一文詳解vue指令及其過濾器(附代碼示例)

vue 指令與過濾器

內容渲染指令

內容渲染指令是用來輔助開發者渲染 DOM 元素的文本內容。常用的內容渲染指令有3種。

v-text

示例

<div id="app">     <!-- 把 username 對應的值,渲染到第一個 p 標簽中 -->     <p v-text="username"></p>     <!-- 把 gender 對應的值,渲染到第二個 p 標簽中 -->     <!-- 注意:第二個 p 標簽中,默認文本會被gender值覆蓋 -->     <p v-text="gender">性別</p> </div> <!-- 導入 vue 的庫文件 -->     <script src="./lib/vue.js v2.7.13.js"></script>
登錄后復制

//創建vue 的實例對象 const vm = new Vue({     //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器     el: '#app',     // data 對象就是要渲染到頁面上的數據     data: {         username: 'zs',         gender: '男'     } });
登錄后復制

插值表達式 {{}}雙大括號

在實際開發中應用較多,不會覆蓋原有渲染
示例

<div id="app">     <p>姓名:{{username}}</p> </div>
登錄后復制

const vm = new Vue({     //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器     el: '#app',     // data 對象就是要渲染到頁面上的數據     data: {         username: 'zs',         gender: '男',     } });
登錄后復制

v-html

可以把帶標簽的的字符串,渲染成真正的html 內容
示例

<div id="app">     <div v-html="info"></div> </div>
登錄后復制

const vm = new Vue({             //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器             el: '#app',             // data 對象就是要渲染到頁面上的數據             data: {                 info: '<h4 style="color: red; font-weight: bold;"> 歡迎學習 vuejs</h4>'             }         });
登錄后復制

屬性綁定指令

注意:插值表達式只能用在元素內容節點中,不能用在元素的屬性節點

動態綁定屬性值 v-bind

在屬性前加屬性指令 v-bind: 為元素動態綁定值,vue 規定 v-bind 可以簡寫成: ,示例

<input type="text" v-bind:placeholder="tips"> <img :src="photo" style="width: 150px;">
登錄后復制

使用 javascript 表達式

在 vue 提供的模板渲染語法中,除了支持綁定簡單的數據值之外,還支持 javascript 表達式的運算,例如

{{ number + 1 }}; {{ ok ? 'YES' : 'NO'}}; {{ message.split('').reverse().join('')}};  <div v-bind:id="'list-' + id"></div>
登錄后復制

注意在簡寫 v-bind 屬性綁定期間,如果綁定內容需要進行動態拼接,則字符串外應包裹單引號,例如

<div :title="'box' + index">!!!!!</div>
登錄后復制

事件綁定指令

v-on 綁定事件

v-on 綁定事件指令,輔助程序員為DOM元素綁定監聽事件,格式如下

<p>count的值是: {{count}}</p>         <!-- 語法格式為 v-on:事件名稱="事件處理函數的名稱" -->         <button v-on:click="addCount">+1</button>
登錄后復制

 const vm = new Vue({             //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器             el: '#app',             // data 對象就是要渲染到頁面上的數據             data:{                 count: 0,             },             // 定義事件的處理函數             methods:{                 add: function () {                     // console.log(vm);                     // vm.count += 1;  		    // this === vm                      this.count += 1;                 } 		// 也可簡寫成                 add () {                     // console.log(vm);                     this.count += 1;                 }             }         });
登錄后復制

v-on: 也可以簡寫為 @

<button @click="sub">-1</button>
登錄后復制

注意:原生 DOM 對象有 onclick、oninput、onkeydown 等原生事件,替換成 vue 的事件綁定形式后,分別為: v-on:click 、v-on:input、v-on:keydown

事件對象

vue 提供了內置固定的變量 $event ,它就是原生 DOM 的事件對象 e

<!-- 如果 count 為偶數,則按鈕背景變為藍色,否則,取消背景 --> <!-- vue 提供了內置固定的變量 $event ,它就是原生 DOM 的事件對象 e-->         <button @click="add(1, $event)">+n</button>
登錄后復制

const vm = new Vue({             //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器             el: '#app',             // data 對象就是要渲染到頁面上的數據             data:{                 count: 0,             },             // 定義事件的處理函數             methods:{                 add (n, e) {                     this.count += 1;                     // 判斷 this.count 的值是否為偶數                     if (this.count%2 === 0) {                         //偶數                         e.target.style.backgroundColor = 'blue';                         console.log(e);                     } else {                         // 奇數                         e.target.style.backgroundColor = '';                     }                 }                            }                    });
登錄后復制

事件修飾符

在事件處理函數中調用 event.preventDefault() event.stopPROpagation() 是非常常見的需求。因此, vue 提供了事件修飾的概念,輔助程序員更方便的**對事件的觸發進行控制。常用5種修飾符如下:

事件修飾符 說明
.prevent 阻止默認行為(例如:阻止 a 鏈接跳轉、阻止表單提交等)
.stop 阻止事件冒泡
.capture 以捕獲模式觸發當前的事件處理函數
.once 綁定事件只觸發一次
.self 只有在 event.target 是當前元素自身時觸發事件處理函數

示例1:

<a href="http://www.baidu.com" @click.prevent="show">跳轉到百度首頁</a>
登錄后復制

const vm = new Vue({             //el 屬性是固定寫法,表示當前 vm 實例要控制的區域,接收的是一個選擇器             el: '#app',             // data 對象就是要渲染到頁面上的數據             data:{},             // 定義事件的處理函數             methods:{                 show () { 		    // e.preventDefault();                     console.log("點擊了 a 鏈接");                 }             }          });
登錄后復制

推薦學習:《vue.js視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品亚洲精品久久精品| 久久国产免费观看精品3| 亚洲欧美日韩中文二区| 精品久久中文字幕| 午夜福利麻豆国产精品| 久久精品中文字幕大胸| 国产99视频精品一区| 亚洲精品免费在线视频| 99ri精品国产亚洲| 99精品在线视频观看| 久久精品国产9久久综合| 国产成人A人亚洲精品无码| 久久精品国产亚洲沈樵| 久久国产乱子伦精品免费强| 综合在线视频精品专区| 91精品国产高清久久久久久io| 精品国产一区二区22| 国产精品视频全国免费观看| 亚洲情侣偷拍精品| 国产福利电影一区二区三区久久久久成人精品综合 | 中日韩精品电影推荐网站| 亚洲一区二区精品视频| 亚洲国产精品一区二区第四页| 成人午夜精品视频在线观看| 一本大道无码人妻精品专区| 亚洲第一永久AV网站久久精品男人的天堂AV| 日韩成人精品日本亚洲 | 亚洲国产精品白丝在线观看| 中文精品久久久久国产网址| 2019国产精品| 99精品国产丝袜在线拍国语| 精品影片在线观看的网站| 欧美激情国产精品视频一区二区| 精品国产乱码久久久久久| 精品极品三级久久久久| 国产精品成人va在线播放| 国产大片91精品免费看3| 日韩亚洲一区二区三区| 思思久久99热免费精品6| 精品国产污污免费网站入口| 伊人久久精品无码二区麻豆|