首頁  >  文章  >  web前端  >  一文詳解vue指令及其過濾器(附程式碼範例)

一文詳解vue指令及其過濾器(附程式碼範例)

藏色散人
藏色散人轉載
2023-01-22 07:30:011979瀏覽

這篇文章為大家帶來了關於前端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="&#39;list-&#39; + id"></div>

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

<div :title="&#39;box&#39; + 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影片教學

以上是一文詳解vue指令及其過濾器(附程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除