• vue 侦听器watch 之 深度监听 deep


    vue 侦听器watch 之 深度监听 deep

    可以替换为 >>>, 一般只用一次

    .el-autocomplete >>> .el-input.is-disabled.el-input-group.el-input-group--append.el-input-group--prepend .el-input__inner{
        background-color: rgba(36, 53, 87, 0.87) !important;
      }
    <template>
    
      <div>
        <p>FullName: {{person.fullname}}</p>
        <p>FirstName: <input type="text" v-model="person.firstname"></p>
      </div>
    
    </template>
    <script>
        export default {
            data(){
                return {
                    person: {
                        firstname: ‘Menghui‘,
                        lastname: ‘Jin‘,
                        fullname: ‘‘
                    }
                }
              },
              watch: {
                  person: {
                      handler(n,o){
                          this.person.fullname = n.firstname + ‘ ‘ + this.person.lastname;
                      },
                      // immediate: true,  //刷新加载 立马触发一次handler
                      // deep: true  // 可以深度检测到 person 对象的属性值的变化
                  }
              }
    
        }
    </script>
    结果:
    
    handler 方法就相当于普通侦听器触发的事件,从结果可以看到,组件初始化的时候,侦听器并没有handler方法  所以fullName是没有值的
    
    

    当修改以上代码,加上immediate: true,组件初始化的时候,侦听器会立马(immediate)触发handler方法
    结果:

    技术图片


    当在输入框中输入数据时, 可以发现fullName的值并没有随之改变

    结果:

    技术图片

    这是因为vue无法检测到对象内部属性值的变化 比如person.firstname的变化

    所以此时 需要用到vue的深度监听(deep) 

    此时加上代码  deep: true

    可以发现 每次输入框数据变化  fullname随之改变

    结果:

    技术图片

    
     

    vue 侦听器watch 之 深度监听 deep

    标签:初始   exp   handle   def   nbsp   class   last   template   port   

    原文地址:https://www.cnblogs.com/php-noob-for-now/p/10975340.html

  • 相关阅读:
    学习笔记4
    学习笔记2
    学习笔记1
    树莓派与Arduino串口通信
    团队大作业第三周周报
    团队大作业第二周周报
    团队大作业第一周周报
    RTCSD_第三次作业
    RTCSD_第二次作业
    RTCSD_第一次作业
  • 原文地址:https://www.cnblogs.com/grj001/p/12223216.html
Copyright © 2020-2023  润新知