美文网首页
Vue.js的监听属性-watch

Vue.js的监听属性-watch

作者: 爱学习的代代 | 来源:发表于2020-05-20 09:11 被阅读0次

用途:通过监听控件,来响应数据的变化,做后续的一系列操作。

例如:下文中监听了km的输入框控件,当控件内的数值发生变化时,展示出来。

使用方法:

  1. 声明控件为 v-model
  2. 未控件初始化数值
  3. 数值计算
  4. 数据监听
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>千米和米的转换</title>
    <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
</head>
<body>
    <div id="computed_transform_distance">
        <!-- v-model 是什么意思啊? -->
        千米: <input type="text" v-model = "km">
        米:  <input type="text" v-model = "m">

        <p id="info"></p>
    </div>

    <script>
        var vm = new Vue({
            // 指定要修改的内容区域
            el: '#computed_transform_distance',
            // 给元素初始化内容
            data: {
                km: 0,
                m: 0
            },
            //监听内容的变化,响应式修改其他控件的内容。
            watch: {
                km: function(val) {
                    this.km = val;
                    this.m = this.km * 1000;
                },
                m: function(val) {
                    this.m = val;
                    this.km = this.m / 1000
                }


            }


        })

        //监听数据变化后回调的方法
        vm.$watch('km', function(newValue, oldValue){
            //这个回调将在vm.km发生变化的时候调用。
            document.getElementById('info').innerHTML = "修改前的值:" + oldValue + "修改后的值: " + newValue;
        })

    </script>
    
</body>
</html>

Q1: v-model是干啥用的?

可以使用v-model指定在表单控件元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但v-model本质上不过是语法糖,它负责监听用户的输入事件以更新数据,并特别处理一些极端的例子。(来自Vue官网)

相关文章

网友评论

      本文标题:Vue.js的监听属性-watch

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