Vue中v-on的指令以及一些其他指令

来源:https://www.cnblogs.com/shineguang/archive/2019/05/18/10884324.html
-Advertisement-
Play Games

1.v-on的基本使用 我們在的的時侯v-on是可以縮寫成@的,例如上邊的可以縮寫成:@:chick="btn"。 在Vue中,其他的事件都可以用v-on綁定 2.事件修飾符 在事件處理程式中調用 event.preventDefault() 或 event.stopPropagation() 是非 ...


1.v-on的基本使用

<div id="app">
    <!-- 使用事件綁定的簡寫形式 -->
    <input type="button" value="按鈕" v-on:click="btn">
</div>
<script>
    var vm = new Vue({
        el: '#app',
//methods是用來專門存放vue的處理方法的 methods: { btn:
function () { alert('123'); } } }); </script>

   我們在的的時侯v-on是可以縮寫成@的,例如上邊的可以縮寫成:@:chick="btn"。

   在Vue中,其他的事件都可以用v-on綁定

2.事件修飾符

     在事件處理程式中調用 event.preventDefault() 或 event.stopPropagation() 是非常常見的需求。儘管我們可以在方法中輕鬆實現這點,但更好的方式是:方法只有純粹的數據邏輯,而不是去處理 DOM 事件細節。

為瞭解決這個問題,Vue.js 為 v-on 提供了事件修飾符。之前提過,修飾符是由點開頭的指令尾碼來表示的。

   使用修飾符 阻止瀏覽器的預設行為

<div id="app">
    <a href="http://www.qq.com"  v-on:click.prevent="btn">騰訊</a>
</div>
<script>
    var vm = new Vue({
        el: '#app',
        methods: {
            btn: function () {
                alert('123');
            }
        }
    });
</script>

  使用修飾符綁定一次性事件

<div id="app">
    <a href="http://www.qq.com" v-on:click.once="btn($event)">騰訊</a>
</div>
<script>
    var vm = new Vue({
        el: '#app',
        methods: {
              btn: function (ev) {
                ev.preventDefault();
                alert('123');
            }
        }
    });
</script>

$event是原始的DOM事件:有時也需要在內聯語句處理器中訪問原始的 DOM 事件。可以用特殊變數 $event 把它傳入方法:

   按鍵修飾符:綁定鍵盤抬起事件,但是只有enter 鍵能觸發此事件

<div id="app">
    <input type="text"  v-on:keyup.enter="keyup">
</div>
<script>
    var vm = new Vue({
        el: '#app',
        methods: {
            keyup:function(){
                console.log('111')
            }
        }
    });
</script>

   滑鼠修飾符:滑鼠左鍵觸發事件

<div id="app">
    <input type="button" value="按鈕" v-on:click.left="btn">
</div>
<script>
    var vm = new Vue({
        el: '#app',
        methods: {
           btn:()=>{
                console.log('111')
            }
        }
    });
</script>

為什麼在 HTML 中監聽事件?

   你可能註意到這種事件監聽的方式違背了關註點分離 (separation of concern) 這個長期以來的優良傳統。但不必擔心,因為所有的 Vue.js 事件處理方法和表達式都嚴格綁定在當前視圖的 ViewModel 上,它不會導致任何維護上的困難。實際上,使用 v-on 有幾個好處:

  1. 掃一眼 HTML 模板便能輕鬆定位在 JavaScript 代碼里對應的方法。

  2. 因為你無須在 JavaScript 里手動綁定事件,你的 ViewModel 代碼可以是非常純粹的邏輯,和 DOM 完全解耦,更易於測試。

         3.當一個 ViewModel 被銷毀時,所有的事件處理器都會自動被刪除。你無須擔心如何清理它們。 

3.v-show的指令:

 

<body>
    <div id="app">
        <input type="button" value="按鈕" v-on:click="change">
        <p v-show="is_show">秀兒,是你嗎</p>
    </div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            is_show: false,
        },
        methods: {
            change: function () {
                this.is_show = !this.is_show;
            }
        }
    });

</script>

 

4.v-if的指令:

<body>
    <div id="app">
        <input type="text"  id="" v-model="type">
        <div v-if="type === 'A'">我是A</div>
        <div v-else-if="type === 'B'">我是B</div>
        <div v-else-if="type === 'C'">我是C</div>
        <div v-else-if="type === 'D'">我是D</div>
        <div v-else>我什麼也不是</div>
    </div>
</body>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            type:''
        }
    });

</script>

5.v-for的指令:

<body>
    <div id="app">
        <!-- 數組 -->
        <ul>
            <!-- v-for 迴圈的語法規則可以參考 js 的 for in 迴圈 -->
            <li v-for="(v,key) in arr">{{v}}---{{key}}</li>
        </ul>
        <!-- 對象 -->
        <ul>
            <li v-for="(v,k) in oop">{{v}}----{{k}}</li>
        </ul>

    </div>
</body>
<script>
    // for(cc in arr)
    var app = new Vue({
        el:'#app',
        data:{
            arr:['ff','hh','jj','gg','ll'],

            oop:{name:'張三',age:30,sex:'男'}
        }
    });
</script>

6.v-once:的指令:

<body>
    <div id="app">
        <!-- 只渲染一次數據 不再是數據單項綁定  這是單次綁定 -->
        <p v-once>{{msg}}</p>
    </div>
</body>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            msg:'123'
        }
    });

</script>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ProgressBar有2個子控制項: SeekBar 拖動條控制項 RatingBar 星級評分控制項 1、拖動條控制項 也可以使用自定義的滑塊: 說明: 並不會自動顯示對應的刻度值。 滑塊可以滑動,但沒有事件響應。需要我們在.java文件中添加事件監聽: 滑動滑塊一次觸發的事件: 最先開始時觸發 onS ...
  • Google I/O 2019, Android版本的學霸畫重點的筆記. ...
  • MT6762刪除掉MTK Webview後,在使用MTK Browser時,打開Browser,在網頁沒有載入出來時,界面出現閃屏現象。 問題原因: 首先browser會申請一個bufferqueue(包含3塊buffer),從pvrtrace看,第0幀的時候APP有畫一個白色背景(如 下),其中一 ...
  • 據最新報道,麒麟985晶元已經成功試產,將在三季度大規模量產。 目前5G手機的實現均通過外掛基帶的方式,雖然高通本季度將流片首款集成5G基帶的驍龍SoC(驍龍865?),但這顆處理器需要等到明年上半年才能商用。 從最新的動態來看,華為也在加快推出內建5G基帶SoC的節奏。 據報道,Mate 30搭載 ...
  • ProgressBar是一個進度條控制項,一般在需要做某個比較耗時的操作的時候,向用戶展示執行進度,以免用戶以為已經失去響應。 常用屬性: style 設置進度條的樣式 visible 是否顯示進度條 1、圓形進度條 一個圓形進度條,不斷旋轉。 常用樣式:Widget.ProgressBar.Smal ...
  • q ...
  • q ...
  • 一個程式往往由多個界面組成,界面之間的跳轉,實質是Activity之間的跳轉。 從當前程式跳轉到其它程式,實質是啟動了目標程式的入口Activity。 Intent被稱為意圖,常用於組件之間的交互,可用於啟動其它組件、程式,並可以在組件之間傳遞數據。 1、顯式意圖 直接指定要啟動的目標組件 方式一: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...