Vue中使用watch字段监听文本数据的变化

2020-05-28  本文已影响0人  Jure_joe
<input type="text" v-model="firstname" @keyup="getfullName">+<input type="text" v-model="lastname" @keyup="getfullName">=<input type="text" v-model="fullname">

<script type="text/javascript">
            const vm = new Vue({
                data:{
                    firstname:'',
                    lastname:'',
                    fullname:''
                },
                methods:{
                    getfullName() {
                        this.fullname = this.firstname +'-'+this.lastname;
                    }
                },
            }).$mount('#app');
        </script>
<input type="text" v-model="firstn">+<input type="text" v-model="lastn">= <input type="text" v-model="fulln">

<script type="text/javascript">
            const vm = new Vue({
                data:{
                    firstn:'',
                    lastn:'',
                    fulln:''
                },
                watch:{//firstn对应data中的firstn
                    firstn(newVal,oldVal) {
                        this.fulln = newVal +'-'+this.lastn;
                    },
                    lastn(newVal,oldVal) {
                        this.fulln = this.firstn +'-'+newVal;
                    }
                }
            }).$mount('#app');
        </script>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            第一种:使用@keyup事件
            <input type="text" v-model="firstname" @keyup="getfullName">+<input type="text" v-model="lastname" @keyup="getfullName">=<input type="text" v-model="fullname">
            <br>
            <br>
            第二种:使用watch
            <input type="text" v-model="firstn">+<input type="text" v-model="lastn">= <input type="text" v-model="fulln">
        </div>
        <script type="text/javascript">
            const vm = new Vue({
                data:{
                    firstname:'',
                    lastname:'',
                    fullname:'',
                    firstn:'',
                    lastn:'',
                    fulln:''
                },
                methods:{
                    getfullName() {
                        this.fullname = this.firstname +'-'+this.lastname;
                    }
                },
                watch:{
                    firstn(newVal,oldVal) {
                        this.fulln = newVal +'-'+this.lastn;
                    },
                    lastn(newVal,oldVal) {
                        this.fulln = this.firstn +'-'+newVal;
                    }
                }
            }).$mount('#app');
        </script>
    </body>
</html>

上一篇 下一篇

猜你喜欢

热点阅读