Vue 框架-03-鍵盤事件、健值修飾符、雙向資料繫結

肖朋偉發表於2018-11-13

Vue 框架-03-鍵盤時間及健值修飾符

一、鍵盤事件,當按鍵盤時,在控制檯輸出提示

在這裡插入圖片描述

html 原始碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>VueLearn-cnblogs/xpwi</title>
        <!--引入自定義的樣式-->
        <link rel="stylesheet" href="css/style.css" />
        <!--引入 vue 核心 js-->
        <script type="text/javascript" src="js/vue.js" ></script>
        
    </head>
    <body>
        
        <!--vue-app 是根容器,定義一個 id,然後在 js 裡操作-->
        <div id="vue-app">
            
            <!--name 具體的值是在 js 中定義的-->
            <h2> 鍵盤 Events </h2>
            <label>姓名:</label>
            <input type="text" v-on:keyup="logName" />
            <label>年齡:</label>
            <input type="text" v-on:keyup="logAge" />
            
        
        </div>
        
        <!--引入自己的 js,注意必須寫在 body 標籤裡最後,因為必須先載入你的整個 HTML DOM,才回去執行 vue 例項-->
        <script type="text/javascript" src="js/appEvent.js" ></script>
    </body>
</html>

js 原始碼:

//例項化 vue 物件
new Vue({
    //注意程式碼格式
    //el:element 需要獲取的元素,一定是 html 中的根容器元素
    el:"#vue-app",
    data:{
    },
    methods:{
        logName: function(){
            console.log("你這正在輸入名字!");
            
        },
        logAge: function(){
            console.log("你這正在輸入年齡!");
            
        }
    }

});

上面程式碼是當使用者點選輸入框後,只要按下鍵盤就會在控制檯列印一次提示,實際應用的並不多,下面介紹當使用者按下Enter鍵時,才觸發

二、健值修飾符

下面在時間後面加上:.enter
就可以實現只監聽 enter 鍵,就可以實現,當使用者在輸入完成,按下Enter鍵時,觸發我們自定義的事件

<input type="text" v-on:keyup.enter="logName" />

三、雙向資料繫結 input,selecet,textarea

適用:input,selecet,textarea 三種標籤
js 檔案種拿到 html 檔案種輸入的資料,然後 html 中拿到 js 檔案中的資料

在這裡插入圖片描述

原始碼 html 檔案:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>VueLearn-cnblogs/xpwi</title>
        <!--引入自定義的樣式-->
        <link rel="stylesheet" href="css/style.css" />
        <!--引入 vue 核心 js-->
        <script type="text/javascript" src="js/vue.js" ></script>
        
    </head>
    <body>
        
        <!--vue-app 是根容器,定義一個 id,然後在 js 裡操作-->
        <div id="vue-app">
            
            <!--name 具體的值是在 js 中定義的-->
            <h2> 鍵盤 Events </h2>
            <label>姓名:</label>
            <!--加一個  ref 用來在 js 檔案中拿到 input 標籤中輸入的內容-->
            <input ref="userName" type="text" />
            <label>年齡:</label>
            <input ref="userAge" type="text" v-on:keyup.enter="notice" />
            
            <hr />
            <span>已確認資訊:</span>
            <br />
            姓名:{{name}}<br />
            年齡:{{age}}
        
        </div>
        
        <!--引入自己的 js,注意必須寫在 body 標籤裡最後,因為必須先載入你的整個 HTML DOM,才回去執行 vue 例項-->
        <script type="text/javascript" src="js/appEvent.js" ></script>
    </body>
</html>

原始碼 js 檔案:

//例項化 vue 物件
new Vue({
    //注意程式碼格式
    
    //el:element 需要獲取的元素,一定是 html 中的根容器元素
    el:"#vue-app",
    data:{
        name : "",
        age : ""
    },
    methods:{
    
        notice: function(){
            //console.log("你這正在輸入年齡!");
            //this.name 是 js 檔案上面定義的一個 name 變數
            this.name = this.$refs.userName.value;
            this.age = this.$refs.userAge.value;
            alert("姓名:" + this.name + " 年齡:" + this.age);
        }
    }

});

四、雙向資料繫結 input,selecet,textarea (二)

上面資料繫結是在按下 輸入Enter鍵的時候,來回的同步資料,下面介紹另一種方式,實現雙向資料繫結

在這裡插入圖片描述

雙向資料繫結第二種方法:
原始碼 html 檔案:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>VueLearn-cnblogs/xpwi</title>
        <!--引入自定義的樣式-->
        <link rel="stylesheet" href="css/style.css" />
        <!--引入 vue 核心 js-->
        <script type="text/javascript" src="js/vue.js" ></script>
        
    </head>
    <body>
        
        <!--vue-app 是根容器,定義一個 id,然後在 js 裡操作-->
        <div id="vue-app">
            
            <!--name 具體的值是在 js 中定義的-->
            <h2> 鍵盤 Events </h2>
            <label>姓名:</label>
            <!--加一個  ref 用來在 js 檔案中拿到 input 標籤中輸入的內容-->
            <input ref="userName" type="text" v-model="name" />
            <label>年齡:</label>
            <input ref="userAge" type="text" v-model="age"/>
            
            <hr />
            <span>同步資料:</span>
            <br />
            姓名:{{name}}<br />
            年齡:{{age}}
        
        </div>
        
        <!--引入自己的 js,注意必須寫在 body 標籤裡最後,因為必須先載入你的整個 HTML DOM,才回去執行 vue 例項-->
        <script type="text/javascript" src="js/appEvent.js" ></script>
    </body>
</html>

原始碼 js 檔案:

//例項化 vue 物件
new Vue({
    //注意程式碼格式
    
    //el:element 需要獲取的元素,一定是 html 中的根容器元素
    el:"#vue-app",
    data:{
        name : "",
        age : ""
    },
    methods:{
    
        notice: function(){
            //console.log("你這正在輸入年齡!");
            //this.name 是 js 檔案上面定義的一個 name 變數
            this.name = this.$refs.userName.value;
            this.age = this.$refs.userAge.value;
            alert("姓名:" + this.name + " 年齡:" + this.age);
        }
    }

});

相關文章