Vue v-model理解值绑定和表单案例(七)

1.v-model二种指令的结合

a.v-bind指令,绑定data里面的值在页面显示,数据改变界面跟着改变是响应式编程。
b.v-bind不能实现页面输入值,data里跟着改变。要监听页面输入数据,通过v-on:input事件监听动作。

手动实现一个v-model

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <!--    <input type="text" v-model="message">-->
    <!--    <input type="text" :value="user" @input="add"/>-->
    <input type="text" :value="user" @input="user =$event.target.value"/>
    <h1>{{user}}</h1>
</div>
</body>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            user: ''
        },
        methods: {
            // add: function (event) {
            //     console.log(event)
            //     this.user = event.target.value;
            // }
        }
    })
</script>
</html>

二、v-model表单操作

a.提交流程(硬编码操作)v-model 绑定变量或对象、数组

数据保存在HTML value里面,value是html中服务器传过来的值,通过页面选择,双向绑定把value值,通过v-model绑定到data中变量 ,然后提交。这里不能使用v-bind

b.显示流程
data里面的值,动态显示到网页里面,通过v-mode 或 v-bind

单选框是 true 和 false 变量
多选框 下拉框是数组保存

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app" v-cloak>
    <label>
        <input type="radio" value="男" v-model="sex"></label>
    <label>
        <input type="radio" value="女" v-model="sex"></label>
    <h1>显示选择性别:{{ sex }}</h1>

    <br>

    <label>
        <input type="checkbox" v-model="is">点击单选框
    </label>
    <h1>{{is}}</h1>
    <button :disabled="!is">下一步</button>

    <br><br><br>

    <input type="checkbox" value="多选框1" v-model="datas">多选框1
    <input type="checkbox" value="多选框2" v-model="datas">多选框2
    <input type="checkbox" value="多选框3" v-model="datas">多选框3
    <h1>{{datas}}</h1>

    <br>
    <label>
        <select v-model="dataUser">
            <option disabled value="">请选择</option>
            <option value="李波">下拉框1</option>
            <option value="波菜">下拉框2</option>
            <option value="波波">下拉框3</option>
        </select>
    </label>
    <h1>下拉框选择的名字:{{dataUser}}</h1>
</div>
</body>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            sex: '',
            is: false,
            datas: [],
            dataUser: [],
            selectUser: [],
            user: ['xiaobo', 'liyongob'],
        }
    })
</script>
</html>

在这里插入图片描述
三、v-mode 值绑定

实际项目中必须掌握的,很多值不是写死的,要动态传。for 循环item值传给 绑定的v-bind:value 元素中的变量,通过v-model 读取到 value 里面的数据双向绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <label v-for="item in users">
        <input type="radio"  v-bind:value="item" v-model="listUser">
            {{listUser}}
        </input>
    </label>
    <h1>{{listUser}}</h1>

    <select v-model="selected">
        <option v-for="option in options" v-bind:value="option.type">
            {{ option.text }}
        </option>
    </select>
    <span>Selected: {{ selected }}</span>
</div>
</body>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            users: ['xiaobo', 'liyongob'],
            listUser: '',

            selected: 'A',
            options: [
                {text: 'One', type: 'A'},
                {text: 'Two', type: 'B'},
                {text: 'Three', type: 'C'}
            ]
        }
    })
</script>
</html>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java语录精选

你的鼓励是我坚持下去的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值