Vue學習筆記六:v-model 數據雙向綁定


v-model簡介和適用范圍

Vue的一大特點之一就是數據的雙向綁定,v-model就是實現這個功能的指令,v-model只能運用到表單元素中,例如

input,radio,text,address,email,select,checkbox,textarea....

表單元素才能去雙向交互,至於div和p啥的,洗洗睡吧

新建HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>蜀雲泉</title>
    
    <script type="text/javascript" src="../lib/vue-2.6.10.js"></script>

</head>
<body>
    
    <!-- 這個div就是MVVM中的V,View -->
    <div id="app">

        <h3 v-text="msg"></h3>

        <input type="text" style="width:100%" v-model="msg">

    </div>


    <script>
        // 這個vm就是MVVM中的VM,ViewModel
        var vm=new Vue({
         el: '#app',
        //  這個data就是MVVM中的M,Model
         data: {
             msg:"大家好,我是Vae"
         },
         methods: {
         }  

        })

    </script>

</body>
</html>

所見即所得

運行,修改input的內容,你會發現上面的文字也跟着變動了,有點所見即所得的感覺

v-model模擬簡易計算器

HTML代碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>蜀雲泉</title>
    
    <script type="text/javascript" src="../lib/vue-2.6.10.js"></script>

</head>
<body>
    
    <!-- 這個div就是MVVM中的V,View -->
    <div id="app">

        <h3 v-text="msg"></h3>

        <input type="text" style="width:100%" v-model="msg">

        <!-- v-model模擬簡易計算器 -->
        <input type="text" v-model="num1">

        <select v-model="opt">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>

        <input type="text" v-model="num2">

        <input type="button" value="=" @click="calc">

        <input type="text" v-model="result">

    </div>


    <script>
        // 這個vm就是MVVM中的VM,ViewModel
        var vm=new Vue({
         el: '#app',
        //  這個data就是MVVM中的M,Model
         data: {
             msg:"大家好,我是Vae",
             num1:0,
             num2:0,
             result:0,
             opt:'+'
         },
         methods: {
            calc(){
                switch(this.opt){
                    case '+':
                        this.result=parseInt(this.num1)+parseInt(this.num2);
                        break;
                    case '-':
                        this.result=parseInt(this.num1)-parseInt(this.num2);
                        break;
                    case '*':
                        this.result=parseInt(this.num1)*parseInt(this.num2);
                        break;
                    case '/':
                        if(this.num2==0) {alert('除數不能為0');break;}
                        this.result=parseInt(this.num1)/parseInt(this.num2);
                        break;

                }
            }
         }  

        })

    </script>

</body>
</html>

效果圖:

防盜鏈接:本博客由蜀雲泉發表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM