• 技术文章 >web前端 >js教程

    在Vue中watch方法使用详解

    php中世界最好的语言php中世界最好的语言2018-04-28 09:58:18原创2480
    这次给大家带来在Vue中watch方法使用详解,在Vue中watch方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。

    watch本身很容易理解, watch负责将视图中的数据与某个函数关联起来

    当Vue视图中的数据变化时, 关联的函数会被执行

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>监听方法watch的使用</title>
      <script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
    </head>
    <body>
      <p id="root"></p>
      <script>
        var vm = new Vue({
          el: "#root",
          data: { obj: {name: "zhaoolee", age: 12} , tel:6666666},
          template: `<p><p>姓名: {{obj.name}}</p>
            <p>电话: {{tel}}</p>
            <input type="text" v-model="obj.name">
            <input type="text" v-model="tel"></p>`,
          watch: {
            obj: {
             handler(){
               console.log("obj被改变");
             },
              // 页面加载之初先执行一次handle
             immediate: true,
              // 深度检查属性,即使对象内部的属性值改变, 也能检测到(比较消耗性能)
             deep: true
            },
            "obj.name": {
              handler(){
                console.log("=>obj.name被改变");
              }
            },
            tel:{
              handler(){
                console.log("tel被改变");
              }
            }
          }
        })
      </script>
    </body>
    </html>

    对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用 $watch() ;

    //使用官方vue-cli脚手架书写
    <template>
      //观察数据为字符串或数组
       <input v-model="example0"/>
       <input v-model="example1"/>
      /当单观察数据examples2为对象时,如果键值发生变化,为了监听到数据变化,需要添加deep:true参数
       <input v-model="example2.inner0"/>
    </template>
    <script>
       export default {
          data(){
            return {
              example0:"",
              example1:"",
              example2:{
                inner0:1,
                innner1:2
              }
            }
          },
          watch:{
            example0(curVal,oldVal){
              console.log(curVal,oldVal);
            },
            example1:'a',//值可以为methods的方法名
            example2:{
             //注意:当观察的数据为对象或数组时,curVal和oldVal是相等的,因为这两个形参指向的是同一个数据对象
              handler(curVal,oldVal){
                conosle.log(curVal,oldVal)
              },
              deep:true
            }
          },
          methods:{
            a(curVal,oldVal){
              conosle.log(curVal,oldVal)
            }
          }
      }
    </script>

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    Vue项目引入icon步骤详解

    js怎么传递数组参数

    以上就是在Vue中watch方法使用详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:watch 详解 方法
    上一篇:js使用分时函数步骤详解 下一篇:Vue自定义动态组件使用详解
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一起聊聊JavaScript函数的定义与基本使用• 详解如何使用Node.js开发一个简单图片爬取功能• JavaScript中的数组知识点总结• JavaScript怎么创建多个对象?详解四种方法• JavaScript DOM API知识串讲
    1/1

    PHP中文网