美文网首页JS
vue 中的watch的高级用法

vue 中的watch的高级用法

作者: 该帐号已被查封_才怪 | 来源:发表于2018-06-05 10:45 被阅读274次
     <input type="text" v-model="testWatch.name">
    
    <script>
      export default {
        data() {
          return {
            testWatch: {
              name: 'hello',
            },
       },
        watch: {
          testWatch: {
            handler(val, oldVal) {
              console.log(val.name, oldVal, 'val,oldVal')
            },
            deep: true,  // 深度检查  如果是对象可以检查各个属性对应的值的变化 否则需要使用testWatch.name 来检查
            immediate: true,  //  相当于立即执行   因此oldVal 可能是undefined  所以别使用oldVal .name
          },
          $route(to, from) {  // 监听路由变化 在 类似于  index.vue 中有  <router-link :to="{name: 'clubcardbuyconsume',params: { id: this.$store.state.curr_game_id}}"> 点击跳转 </router-link>才有效!
          if (this.$route.params.id) {
               alert('有id')
          }
       },
     },
    }
    
    </script>
    
    

    值得一提的是,watch即使采用了 deep: true, 深度检查模式,也不能检测 一个对象的属性的添加;

    相关文章

      网友评论

        本文标题:vue 中的watch的高级用法

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