Vue·事件监听

使用keyup进行监听方法

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script src='./js/vue2.js'></script> // 下载到本地使用 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <!-- router地址 -->
    <script src="https://unpkg.com/vue-router@3.5.1/dist/vue-router.min.js"></script>
    </head>
    <body>
    <hr>
 

    // @keyup 监听事件方法
    <div id='app'>   
        <input type="text" name="" v-model="firstname" @keyup="result" /> + 
        <input type="text" name="" v-model="lasenaem"  @keyup="result" /> =
        <input type="text" name="" v-model="fullname"  @keyup="result" />
        
      
    </div>
</body>
 
    <script type="text/javascript">
        
        const vm = new Vue({
            el: '#app', // 获取element元素
            data: {
                firstname:'',
                lasenaem:'',
                fullname:''
            },
            methods:{
                result(){
                    this.fullname = this.firstname+this.lasenaem;
                }
            }
        })
    </script>

</html>

使用watch监听

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script src='./js/vue2.js'></script> // 下载到本地使用 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <!-- router地址 -->
    <script src="https://unpkg.com/vue-router@3.5.1/dist/vue-router.min.js"></script>
    </head>
    <body>
    <hr>
    // @keyup 监听事件方法,如果使用watch就不需要使用keyup这个监方法
    <div id='app'>   
        <input type="text" name="" v-model="firstname"   /> + 
        <input type="text" name="" v-model="lasenaem"    /> =
        <input type="text" name="" v-model="fullname"    />
    </div>
</body>
 
    <script type="text/javascript">
        
        const vm = new Vue({
            el: '#app', // 获取element元素
            data: {
                firstname:'',
                lasenaem:'',
                fullname:''
            },
            // 使用keyup进行监听方法
            // methods:{
            //     result(){
            //         this.fullname = this.firstname+"-"+this.lasenaem;
            //     }
            // },

            //what  方法一
            // watch:{ // 标签中就不需要使用@keyup="" 进行监听了
            //         firstname:function(){
            //             this.fullname = this.firstname+"-watch-"+this.lasenaem;
            //         },
            //         lasenaem:function(){
            //             this.fullname = this.firstname+"-watch-"+this.lasenaem;
            //         }
            //     }

            // what  方法二
            watch:{ // 标签中就不需要使用@keyup="" 进行监听了 newVal新值 oldVal老值
                    firstname:function(newVal,oldVal){
                        console.log(newVal,oldVal);
                        this.fullname = newVal+"-watch-"+this.lasenaem;
                    },
                    lasenaem:function(newVal,oldVal){
                        console.log(newVal,oldVal);
                        this.fullname = newVal+"-watch-"+this.lasenaem;
                    }
                }
        })
    </script>
</html>

计算属性

会将返回值的结果保存到磁盘缓存中,下次直接读取缓存中的数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script src='./js/vue2.js'></script> // 下载到本地使用 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <!-- router地址 -->
    <script src="https://unpkg.com/vue-router@3.5.1/dist/vue-router.min.js"></script>
</head>
<body>
    <hr>
 

    // @keyup 监听事件方法,如果使用watch就不需要使用keyup这个监方法
    <div id='app'>   
        <input type="text" name="" v-model="firstname"   /> + 
        <input type="text" name="" v-model="lasenaem"    /> =
        <input type="text" name="" v-model="fullname"    />
        
      
    </div>
</body>
 
    <script type="text/javascript">
        
        const vm = new Vue({
            el: '#app', // 获取element元素
            data: {
                firstname:'',
                lasenaem:'',
                // fullname:'' 将此变量放到computed中
            },
             
            
            // 会将返回值的结果保存到磁盘缓存中,下次直接读取缓存中的数据
            computed:{
                'fullname':function(){
                    return this.firstname +'::computer::'+ this.lasenaem ;
                }
            }
        })
    </script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青鸟遇鱼

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值