前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

v-model

作者头像
名字是乱打的
发布2021-12-22 15:37:41
3610
发布2021-12-22 15:37:41
举报
文章被收录于专栏:软件工程软件工程

我们的差值表达式是无法在标签属性栏中使用的,这也就意味着,我们无法给某些文本框之类的直接预设值. eg:如下是不行的

代码语言:javascript
复制
姓名:<input type="text" id="username" value="user.username"><br> 
密码:<input type="password" id="password" value="user.password"><br>

姓名:<input type="text" id="username" value={{user.username}}><br> 
密码:<input type="password" id="password" value={{user.password}}><br>

    //view model
        new Vue({
            el:"#app",
            data:{
                user:{
                    name:"zyh",
                    pw:"123"
                }
            }
        })
vue为我们提供了一共属性标签,v-model

使用如下

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>v-if与v-show</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
        <div id="app">
            <form>
            用户名:<input type="text" id="username" v-model="user.name" /><br />
            密  码:<input type="password"  id="password" v-model="user.pw" />
            </form>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                user:{
                    name:"zyh",
                    pw:"123"
                }
            }
        })
    </script>
</html>

效果:

另外这个在我们做一些选项绑定也特别有用,比如对于复选框的checkbox和单选的radio.

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
    <div id="example-1">
        <input v-model="message" placeholder="edit me">
        <p>Message is: {{ message }}</p>
        <textarea v-model="message2" placeholder="add multiple lines"></textarea>
        <p style="white-space: pre-line;">{{ message2 }}</p>
        <br />
        
        <div style="margin-top:20px;">
            <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
            <label for="jack">Jack</label>
            <input type="checkbox" id="john" value="John" v-model="checkedNames">
            <label for="john">John</label>
            <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
            <label for="mike">Mike</label>
            <br>
            <span>Checked names: {{ checkedNames }}</span>
        </div>
        
        <div style="margin-top:20px;">
            <input type="radio" id="one" value="One" v-model="picked">
            <label for="one">One</label>
            <br>
            <input type="radio" id="two" value="Two" v-model="picked">
            <label for="two">Two</label>
            <br>
            <span>Picked: {{ picked }}</span>
        </div>
        <button type="button" @click="submit">提交</button>
    </div>
    
</div>
<script type="text/javascript">
var vm = new Vue({
    el : "#app",
    data : {
        message : "test",
        message2 :"hi",
        checkedNames : [],
        picked : "Two"
    },
    methods: {
        submit : function () {
            console.log(this.message);
            
        }
    }
});
</script>
<style type="text/css">

</style>
</body>
</html>

v-model双向绑定,选择效果图如图

此外,V-model提供了一些修饰符

  • lazy修饰符:
    • 默认情况下,v-model默认是在input事件中同步输入框的数据的。也就是说,一旦有数据发生改变对 的data中的数据就会自动发生改变。
    • lazy修饰符可以让数据在****失去焦点或者回车时才会更新
  • number修饰:
    • 默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。
    • 但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。
    • number修饰符可以让在输入框中输入的内容自动转成数字类型.
  • trim修饰符:
    • 如果输入的内容首尾有很多空格,通常我们希望将其去除口
    • trim修饰符可以过滤内容左右两边的空格
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue为我们提供了一共属性标签,v-model
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档