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

v-model簡介和適用範圍

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

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

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

新建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的內容,你會發現上面的文字也跟着變更了,有點所見即所得的感受java

v-model模擬簡易計算器

HTML代碼以下:app

<!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>

效果圖:this

防盜連接:本博客由蜀雲泉發表雙向綁定

相關文章
相關標籤/搜索