这篇文章给大家介绍如何通过$emit()和$dispatch()实现子组件向父组件传值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为毕节企业提供专业的网站建设、成都做网站,毕节网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
自定义组件是一个开发者编写的组件,使用起来和Native一样,最终按照组件的来渲染;同时开发起来又和页面一样,拥有ViewModel实现对数据、事件、方法的管理。自定义组件也叫子组件,因为它不能独立存在,需要被引入到页面上才能生效。子组件避免一个页面的布局庞大、臃肿,而且使代码可读性好、易维护。
子组件如何向父组件传值呢?比如当子组件对数据进行改造后,如何把最终数据交给父组件呢?主要有两种方法:
子组件通过$emit()触发在节点上绑定的自定义事件来执行父组件的方法。
子组件通过$dispatch()触发自定义事件,父组件通过$on()监控自定义事件的触发。
解决方案
方法一
子组件通过$emit()触发在节点上绑定的自定义事件来执行父组件的方法,如下例子中实现了如何将子组件中的count值传递到父组件上。子组件定义了emitEvt事件(父组件中引用时,需要添加on前缀),子组件在调用$emit()时,携带了count参数,父组件在响应事件时,便可获取到参数值。
`
`
方法二 子组件调用childVm.$dispath()完成向上传递。子组件通过$dispatch()触发自定义事件,父组件通过$on()监控自定义事件的触发,自定义事件中控制num的变化,父组件中通过evt.detail获取子组件中的num的值赋值给父组件。
`
`
关于如何通过$emit()和$dispatch()实现子组件向父组件传值就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
本文名称:如何通过$emit()和$dispatch()实现子组件向父组件传值
本文网址:http://lswzjz.com/article/pceoje.html