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

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

作者: Jure_joe | 来源:发表于2020-05-28 17:00 被阅读0次
  • 实现文本数据变化的监听有两种方式,一种是使用@keyup事件进行监听,另外一种是使用vue实例中使用watch字段进行监听
  • 存在问题:只能监听有dom元素的
  • 使用@keyup进行监听的写法
<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>
  • 使用watch字段进行监听
  • 优势:能监听非dom元素,如:用来监听路由地址的变化,'$route.path':function(newVal,oldVal){}
  • 使用该字段,可以监听指定数据的变化,然后触发watch中对应data字段中同名属性名的function处理函数,newVal指代最新输入文本,oldVal指代上次文本框中的文本值
<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>

相关文章

  • vue监听和webpack基本使用

    vue监听 使用keyup监听 使用watch监听文本框变化,watch 使用这个属性可以监视data中的数据变化...

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

    实现文本数据变化的监听有两种方式,一种是使用@keyup事件进行监听,另外一种是使用vue实例中使用watch字段...

  • Watch监听

    侦听器,监听数据的变化,基础用法在vue中,使用watch来响应数据的变化。watch的用法大致有三种。 1、下面...

  • 微信小程序之watch属性值(仿Vue)

    Vue通过监听watch属性来观测Vue实例数据的变化。 监听器的原理,将data中需监听的属性写在watch对象...

  • Vue的watch和computed属性

    Vue的watch属性 Vue的watch属性可以用来监听data属性中数据的变化 可以从上述代码中实践得知,输入...

  • Vue.js 监听属性

    介绍下Vue.js监听属性watch,我们可以通过watch来响应数据的变化。以下实例通过使用watch实现计数器...

  • Vue学习笔记06 webpack的详细配置

    一.watch的使用 1.监听data中数据的改变 在watch里面监听data里面数据的变化,newVal表示更...

  • vue组件传值&vuex

    vue技术分享 目录 vue组件之间的通信 vue中数据监听watch的使用 vuex状态管理 vue-aweso...

  • vue中watch详解(转)

    vue中,watch用来监听数据变化。如:需要监听输入框数据变化来实时进行搜索等。简单的写法: 函数名也可以通过字...

  • Vue-watch

    在 vue 中使用 watch 相应数据的变化,大致有三种使用方法: 第一种: 直接监听 data 中的某个数据的...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/mieaahtx.html