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

        一文詳解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號
        主站蜘蛛池模板: 亚洲国产另类久久久精品小说| 97久久精品无码一区二区天美| 无码人妻精品一区二区在线视频| 青青草国产精品久久| 最新国产精品无码| 精品久久久久久无码人妻热 | 久久青青草原精品国产| 久久精品国产一区二区| 91精品国产成人网在线观看| 99re这里只有精品6| 久久综合国产乱子伦精品免费| 日韩熟女精品一区二区三区 | 国产第一福利精品导航| 久久精品国产99久久无毒不卡| 亚洲午夜国产精品无码老牛影视| 久久国产精品免费一区二区三区| 91精品无码久久久久久五月天| 国产日韩欧美精品| 99精品无人区乱码在线观看| 国产精品v片在线观看不卡| 人妻少妇精品视频一区二区三区| 亚洲欧美国产∧v精品综合网| 蜜臀久久99精品久久久久久| 久久露脸国产精品| 精品一区二区无码AV| 精品人妻伦一二三区久久 | 国产亚洲欧美精品久久久| 老汉精品免费AV在线播放| 亚洲2022国产成人精品无码区| 亚洲线精品一区二区三区影音先锋| 亚洲精品自在在线观看| 亚洲精品乱码久久久久久按摩| 亚洲日韩精品无码专区网站| 日韩蜜芽精品视频在线观看| 亚洲?V乱码久久精品蜜桃| 亚洲国产精品一区二区第四页| 亚洲精品成人区在线观看| 亚洲精品成人片在线播放| 乱色精品无码一区二区国产盗| 久久99精品久久久久久久不卡| 国产精品一区二区av|