• 君の名は。
    2019-03-26
    老师,我通过反复测试demo,发现以下几个问题
    第一:
    handleChange(e) {
          this.info.name = e.target.value;
          this.$forceUpdate();
    }
    子组件 Proxy.vue 中 this.info.name = e.target.value 是直接修改了父组件传过来的数据,但是它并没有报错,是因为子组件并没有直接修改 info。没有报错的原因我认为是子组件对父组件穿过来的值是引用类型,引用地址没有变化,其内部无论修改什么都没有影响。我通过将父组件的 info 添加 name 属性并给予值,子组件直接修改,没有报错;通过将父组件传过来的 info 改为 String,子组件直接修改其值,发现vue报错,而得出的结论。
    第二:
    父组件中
    handleProxyChange(val) {
          window.isUpdatingChildComponent = true;
          this.info.name = val;
          this.info = { name: val };
    }
    window.isUpdatingChildComponent = true;这段代码没有任何意义,我将这个方法直接删除,同时放开子组件中created方法的代码,proxy.js不受影响。
    请老师对我以上发现的问题提出建议。

    (以下为一时冲动所想,但觉得应该写出来)
    我通过查看课程安排,发现老师的课程安排较为紧张,从而造成老师的视频讲解中有些部分讲解较思路不是很明确,有些代码一带而过或者根本没有讲解,给没有基础或者基础较弱的同学造成混乱。我由衷的希望老师在录制完一段视频后,自己观看一遍,以便查漏补缺,哪怕有文字说明都好。我知道老师是在百忙之中抽出来的时间录制课程,辛苦老师,但是既然决定录制课程,那么就应该对课程负责,对学生负责,对质量负责,哪怕因为质量造成课程拖延,我相信大家都是可以体谅的,希望老师的课程越来越好。
    展开

    作者回复: 感谢建议,后面会进一步优化课程!
    如果你是删除了isupdatingchildcomponent = true 可以刷新下页面重试,应该是有一次提示的,如果你把this.info = {name: val }也删掉,就会每次修改都会提示。这是因为我们把this.info 给重新赋值了,而子组件只在created中对info做了proxy,后来info 直接被改了,所以只会得到一次提示

    
     17
  • young
    2019-04-21
    老师,终于搞明白了使用index作为key会出现bug的原因了!
    因为当使用splice()方法切掉数组的某个元素时数组的index会被重新索引,造成数组的最后一个index丢失,从而会造成虚拟DOM的最后一个结点(key)丢失,造成无论删除哪个结点都会误删除最后一个结点的bug
    
     11
  • 星灬缘
    2019-05-23
    老师,那个删除key的 既然是根据下标删除数组的,点解删除传入的却不用下标,传key值是从1开始的,下标却是从0开始的,感觉并不能说明key值不能用index。
    
     7
  • 小仙儿~
    2019-03-29
    老师讲了半天也只是讲vue怎么不推荐子组件修改父组件传的值,可是没讲为什么子组件不能改啊

    作者回复: 好吧 补充一下: 顶层提供的数据可能会有多个子组件再使用,如果一个子组件直接修改了,其他子组件也会跟着变化。 整个的数据流向就会变得越来越乱。 如果完全遵循单向数据流,当数据有变化需求,都要通过父组件去更改,父组件可以有权限来进一步处理要不要更改。 整个数据的流向就简单直观了。

    
     3
  • 阿耿
    2019-05-31
    Index例子有问题,删除传了key,循环用了index
    
    
  • 星灬缘
    2019-05-23
    O__O "…,没仔细听课,好想删留言 O__O "… 检讨检讨 O__O "…
    
    
  • hunzi-ssq
    2019-04-18
    请问老师 这个key我们可不可以就用:key=‘“key”+index’ 来解决呢?

    作者回复: 并不可以 你这样和直接用index是一样的

    
    
  • young
    2019-04-15
    老师,习题解答1中我们都要手动写代码对props内部定义的数据进行保护吗?我测试过了,如果props里面定义的数据是基本类型Vue会报错,如果是对象则Vue不会报错我们可以直接修父组件里的数据!!

    作者回复: 不用特别去手动保护,只要注意就好,就算不报错,也不要直接改

    
    
  • 黑曼巴
    2019-04-03
    老师我发现我把这句话展开以后 //this.$emit("change", e.target.value); ,并且把created注释的也展开后 还是会报错name不能修改的错误,只会报错一次为什么只会报一次错误 是不是最初始化的isUpdatingChildComponent他还不是true,所以报一次错误

    作者回复: 可以看我回复 “君の名は。” 的留言

    
    
  • Geek_3adda6
    2019-04-03
    老师 Vue函数和生命周期钩子里 是通过bind 把this绑定成了vue实例吗 还有就是为什么cli里只有一个vue实例

    作者回复: 是的,methods是使用的bind,生命周期直接使用的apply或call。应该说只有一个“跟”实例

    
    
  • 小仙儿~
    2019-03-30
    就直接用传入的值做key的话,如果传入的两个值相同呢?
    
    
  • 柯恩
    2019-03-30
    关于在template中使用临时变量的内容在哪个课程里面啊

    作者回复: 函数式组件部分

    
    
  • 志…
    2019-03-30
    不能用index作为key那部分还是有点不理解,能不能再详细说一下

    作者回复: 我稍后写篇文章,再详解下吧

     1
    
我们在线,来聊聊吧