为什么在子组件上面删除一项需要采用订阅发布模式通知父组件呢?直接在子组件上面删除不就行了吗?

来源:3-4 实现todolist的删除功能

明明的明天12

2018-10-15 19:13

如题,比如我要删除子组件的一项,那一项是由父组件的list里面传递过来的,需要采用订阅发布模式通知父组件才可以删除,那为什么我在这一项上添加一个click事件弹出字符串(例如:alert'hello world')则不需要通知父组件呢?

写回答 关注

3回答

  • 千里明月
    2018-10-16 11:31:10
    已采纳

    这么想吧 其实无论父组件还是子组件,它们都只是对应着一个dom节点而已。list中的每个<li>其实都是一个dom子节点,想删除这些动态生成的子节点,按js的逻辑,得先找到父dom节点,才能定位到子节点本身。而弹出事件本身就不是个节点,无需定位,也就不需要通知其他节点了。

    明明的明天1... 回复千里明月

    那照这样说是点击弹出事件是锁定了组件而不需锁定dom节点

    2018-10-16 20:25:39

    共 3 条回复 >

  • 幕布斯6086120
    2018-12-23 16:29:12

    删除list数组的值,在子组件的方法调用父组件的实例.list.splice(index,1)就可以实现,我理解的,老师采取向父组件传值的方式删除对应的list值,是为了向我们展示子组件向父组件传值和父组件向子组件传值的方式.能够理解监听,绑定,订阅,发布的理解

  • 明明的明天12
    2018-10-16 15:08:14

    弹出事件是直接绑定在list中的每一个<li>上的,就类似于直接绑定在父组件上了,无需通知,这样理解对不对

vue2.5入门

快速理解Vue编程理念上手Vue2.0开发。

146820 学习 · 657 问题

查看课程

相似问题