• v-model的使用


    使用以及原理叙述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <div id="app">
        <input type="text" v-model="message">
        <h3>{{message}}</h3>
        <!-- 原理:1.v-bind绑定一个value属性 2. v-on指令给当前元素绑定input事件拿到当前输入框的值-->
        <!--<input type="text" :value="message" v-on:input="valueChange($event)">-->
        <!--<input type="text" :value="message" v-on:input="message = $event.target.value">-->
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '你好啊'
            },
            methods: {
                valueChange(event){
                    console.log(event);
                    this.message = event.target.value
                }
            }
        })
    </script>
    
    </body>
    </html>
    

      

    v-model与radio结合使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="app">
        <label for="male">
            <input type="radio" id="male" value="男" name="sex" v-model="sex">男
        </label>
        <!--其实可以把上下input标签的name属性去掉,key去掉 因为在v-model已经表明了name这个key-->
        <label for="female">
            <input type="radio" id="female" value="女" name="sex" v-model="sex">女
        </label>
    
        <h3>你选择的性别是: {{sex}}</h3>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '你好啊',
                sex: '男' // 默认是男
            }
        })
    </script>
    </body>
    </html>
    

      

    v-model与checkbox的结合使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="app">
        <!-- 1. v-model与checkbox单选框的使用-->
        <label for="agree">
            <input type="checkbox" id="agree"  v-model="isAgree">同意协议
        </label>
        <h2>你选择的是:{{isAgree}}</h2>
        <button :disabled="!isAgree">下一步</button>
        <br>
        <!--2. v-model与checkbox多选框的使用-->
        <input type="checkbox" value="旅游" v-model="hobbies">旅游
        <input type="checkbox" value="足球" v-model="hobbies">足球
        <input type="checkbox" value="音乐" v-model="hobbies">音乐
        <input type="checkbox" value="电影" v-model="hobbies">电影
        <h2>你的选择是:{{hobbies}}</h2>
    
    
        <!--3. 值绑定-->
        <label v-for="item in orderHobbies" :for="item">
            <input type="checkbox" :value="item" :id="item" v-model="hobbies">{{item}}
        </label>
    
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '你好啊',
                isAgree: false,  // 布尔类型
                hobbies: [],    // 数组类型
                orderHobbies: ['台球', '足球', '篮球', '旅游', '音乐', '电影']
            }
        })
    </script>
    </body>
    </html>
    

      

    v-model与select的结合使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="app">
        <!--1. select选择一个-->
        <select name="fruit" v-model="fruit">
            <option value="香蕉">香蕉</option>
            <option value="苹果">苹果</option>
            <option value="榴莲">榴莲</option>
            <option value="葡萄">葡萄</option>
            <option value="草莓">草莓</option>
        </select>
        <h3>你的选择是: {{fruit}}</h3>
    
        <!--2. select选择多个-->
        <select name="fruit" v-model="fruits" multiple>
            <option value="香蕉">香蕉</option>
            <option value="苹果">苹果</option>
            <option value="榴莲">榴莲</option>
            <option value="葡萄">葡萄</option>
            <option value="草莓">草莓</option>
        </select>
        <h3>你的选择是: {{fruits}}</h3>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '你好啊',
                fruit: '香蕉',
                fruits: []
            }
        })
    </script>
    </body>
    </html>
    

      

    v-model的修饰符

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <div id="app">
        <!--1. .lazy修饰符 失去焦点或者敲回车才去绑定数据-->
        <input type="text" v-model.lazy="message">
        <h2>{{message}}</h2>
    
        <!--2. .number修饰符 输入的数字自动转换成数字类型 输入的东西都是字符串类型-->
        <input type="number" v-model.number="age">
        <h2>{{age}}---{{typeof age}}</h2>
    
        <!--3. .trim修饰符 去掉空格-->
        <input type="text" v-model.trim="name">
        <h2>{{name}}</h2>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '你好啊',
                age: '',
                name: ''
            }
        })
    </script>
    </body>
    </html>  

    mvvm在初体验中有介绍三层,双向绑定,响应式

  • 相关阅读:
    Android 课程设计
    第十个作业 简易通讯录
    第九个作业 QQ的账号密码保存
    第八个作业 QQ账号的保存
    第七个作业 Activity之间的数据回传
    第六个作业 应用列表
    第五个作业 背景换色
    JSP第一次作业
    安卓课设
    Android第八次作业
  • 原文地址:https://www.cnblogs.com/Alexephor/p/11755732.html
Copyright © 2020-2023  润新知