VueJS----[内部指令-1.5]----v-on:绑定事件监听器&v-model

v-on:绑定事件监听器&v-model

v-on 就是监听事件,可以用v-on指令监听DOM事件来触发一些javascript代码。

v-on

一、使用绑定事件监听器,编写一个加分减分的程序。
效果图这里写图片描述
完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-on</title>
    <script type="text/javascript" src="../assets/js/vue.js"></script>
</head>
<body>
    <h1>v-on</h1>
    <hr>
    <div id="app">
        本场比赛得分:{{score}}
        <button v-on:click="up">加分</button>
        <button @click="down">减分</button>
        <input type="text" v-on:keyup.enter="onEnter" v-model="score2">
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:'#app',
            data:{
                score: 0,
                score2: 1
            },
            methods:{
                up:function(){
                    this.score++;
                },
                down:function(){
                    this.score--;
                },
                onEnter:function(){
                    this.score=this.score + parseInt(this.score2);
                }
            }
        });
    </script>
</body>
</html>

v-on还有一种简单的恶写法,就是用@代替

<button < @click="jianfen">减分</button>

除了可以绑定click之外,还可以绑定其他事件,比如键盘的回车键

<input type="text" v-on:keyup.enter="onEnter" v-model="secondCount">
 onEnter:function(){
     this.count=this.count+parseInt(this.secondCount);
}

因为文本框的数组会默认编程字符串,一次你需要用到parseInt()方法进行转换

v-model:

1、先看一个简单的双向数据绑定
HTML:

<p>原始文本信息:{{message}}</p>
<h3>文本框</h3>
<p>v-model:<input type="text" v-model="message"></p>

JS:

 var app = new Vue({
    el:'#app',
     data:{
         message: 'sdsd'
     }
 });

2.修饰符

.lazy:取代imput监听change事件这里写代码片
.number:输入字符串转成数字
.trim:输入去掉空格
<p>v-model.lazy:<input type="text" v-model.lazy="message"></p>
<p>v-model.number<input type="text" v-model.number="message"></p>
<p>v-model.trim<input type="text" v-model.trim="message"></p>

3.文本域加入数据绑定

<textarea  cols="30" rows="10" v-model="message"></textarea>

4.多选按钮绑定一个值

<h3>多选框绑定一个值</h3>
<input type="checkbox" id="isTrue" v-model="isTrue" />
<label for="isTrue">{{isTrue}}</label>

5.多选按钮绑定一个数组

<hr>
<p>
    <input type="checkbox" id="cheny" value="cheny" v-model="web_names" />
    <label for="isTrue">cheny</label>
    <input type="checkbox" id="boom" value="boom" v-model="web_names" />
    <label for="isTrue">boom</label>
    <input type="checkbox" id="chendayong" value="chendayong" v-model="web_names" />
    <label for="isTrue">chendayong</label>
</p>
<p>{{web_names}}</p>
var app = new Vue({
   el:'#app',
    data:{
        isTrue:true,
        web_names:[]
    }
});

6.单选按钮绑定数据

<h3>单选按钮绑定</h3>
<input type="radio" id="one" value="男" v-model="sex">
<label for="one"></label>
<input type="radio" id="two" value="女" v-model="sex">
<label for="one"></label>
<p>{{sex}}</p>

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>v-model</title>
    <script type="text/javascript" src="../assets/js/vue.js"></script>
</head>
<body>
    <h1>v-model</h1>
    <hr>
    <div id="app">
        <p>原始文本信息:{{message}}</p>
        <h3>文本框</h3>
        <p>v-model:<input type="text" v-model="message"></p>
        <p>v-model.lazy:<input type="text" v-model.lazy="message"></p>
        <p>v-model.number<input type="text" v-model.number="message"></p>
        <p>v-model.trim<input type="text" v-model.trim="message"></p>

        <hr>
        <h3>文本域</h3>
        <textarea cols="30" rows="10" v-model="message"></textarea>
        <hr>
        <h3>多选框绑定数组</h3>
        <input type="checkbox" id="isTrue" v-model="isTrue" />
        <label for="isTrue">{{isTrue}}</label>

        <hr>
        <p>
            <input type="checkbox" id="cheny" value="cheny" v-model="web_names" />
            <label for="isTrue">cheny</label>
            <input type="checkbox" id="boom" value="boom" v-model="web_names" />
            <label for="isTrue">boom</label>
            <input type="checkbox" id="chendayong" value="chendayong" v-model="web_names" />
            <label for="isTrue">chendayong</label>
        </p>
        <p>{{web_names}}</p>

        <hr>
        <h3>单选框的绑定</h3>
        <p>
            <input type="radio" id="one" value="男" v-model="sex">
            <label for="one"></label>
            <input type="radio" id="two" value="女" v-model="sex">
            <label for="two"></label>
            <p>你选择的性别是{{sex}}</p>
        </p>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:'#app',
            data:{
                message: 'sdsd',
                isTrue:true,
                web_names:[],
                sex:'男'
            }
        });
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值