cur != old 的问题

来源:8-9 event(8)

六一888

2020-02-01

<template>
  <div class="hello" v-if="flag" @click="clickOne($event)">
    <h1>{{ nested.msg }}</h1>
    <h2>Essential Links</h2>
    <h2>Ecosystem</h2>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: ['flag'],
  data () {
    return {
      nested: {
        msg: 'Welcome to Your Vue.js App'
      }
    }
  },
  methods: {
    clickOne (el) {
      console.log(el)
      this.$emit('change', 1, 2)
    }
  }
}
</script>

当我将 clickOne 改成 clickTwo 时,为什么不会进入到 cur != old 的逻辑?而 old 总是为 undefined

我的逻辑是当我将 clickOne 改成 clickTwo 时会进入到 patchVnode,然后会执行所有 module 的 update 钩子,进而执行到 updatelistener 函数,但是 oldOn[name] 不是应该是 clickOne 么?然后 on[name] 是 clickTwo,为什么 oldOn[name] 会是 undefined ?

写回答

1回答

ustbhuangyi

2020-02-02

没看到你代码中修改 clickTwo 的逻辑啊,你有完整例子的 GitHub 地址吗?

0
1
六一888
这个问题解决啦
2020-02-03
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4986 学习 · 1038 问题

查看课程