sameVnode的问题

来源:5-7 组件更新(1)

我要学习去了

2021-09-15

我想测试测试一下sameVnode这个方法,然后给组件加了一个v-if,调用方法去改变v-if的值,但是一点击vue就报警告了

警告如下:

vue.esm.js?a026:628 [Vue warn]: Error in v-on handler: "TypeError: Cannot read properties of undefined (reading 'update')"

vue.esm.js?a026:1908 TypeError: Cannot read properties of undefined (reading 'update')

代码如下:

<template>
  <div id="app">
    <div ref="hahaha" v-if="isShow">{{ msg }}</div>
    <div>
      <button @click="change">点击</button>
    </div>
    <Hello>
      <template v-slot:test>
        <div>插槽</div>
      </template>
      <template v-slot:person="{ name, age }">
        我叫{{ name }},今年{{ age }}岁
      </template>
    </Hello>
  </div>
</template>

<script>
import Hello from "./components/Hello";
export default {
  name: "App",
  components: { Hello },
  data() {
    return {
      isShow: false,
      msg: "what this is",
      $str: "这是以$符开头的key",
    };
  },
  methods: {
    test() {
      console.log("this is test method");
    },
    change() {
      this.isShow = true
      this.msg = "值被我改变了"
    }
  },
  created() {
  },
};
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


写回答

2回答

ustbhuangyi

2021-09-16

你把这个代码传到 GitHub 上,我抽空帮你看看

0
0

我要学习去了

提问者

2021-09-15

但是我change的时候,把下面的

this.msg = "值被我改变了"

注释了,警告和报错就没有看了

0
0

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

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

4984 学习 · 1037 问题

查看课程