如何实现Vue父子组件数据传递

这次给大家带来如何实现Vue父子组件数据传递,实现Vue父子组件数据传递的注意事项有哪些,下面就是实战案例,一起来看一下。

当我们在书写 vue 组件的时候,也许可能会用到数据传递;将父组件的数据传递给子组件,有时候也需要通过子组件去事件去触发父组件的事件;

每当我们遇到这样的需求的时候,我们总是会想到有三种解决办法:

通过 props 的方式向子组件传递(父子组件)

vuex 进行状态管理(父子组件和非父子组件) vuex

非父子组件的通信传递 Vue Event Bus ,使用Vue的实例,实现事件的监听和发布,实现组件之间的传递。

后来再逛社区的时候我又发现了还有第四种传递方式, inheritAttrs + $attrs + $listeners

附上原文链接Vue2.4版本中新添加的 attrs 以及 listeners 属性使用 和 Vue.js最佳实践(五招让你成为Vue.js大师)

基本是大部分的公司或者项目都是用前面两种,我司也不例外;好像曾经在官方文档看到过, vuex 适合用在大型的项目中。第三种方式我曾在我的毕设中用到过,其他地方我好像目前是没有看到,当时只有一个功能需要在兄弟组件之间传递数据,用 vuex 的话,大材小用,另外还需要时间成本。所以我选择了 Vue Event Bus ;最后一种方式的话,我目前还没有看到过在项目的应用。但是我个人觉得既然有这个 api 那肯定是有他存在的道理。不然它存在还有何意义的??如果有需求我个人觉得可以尝试用一用;拥抱变化,拥抱机会

工作之后发现,碰到 bug 有时候常规的方式,并不一定是最好的。跳出常规思维,跳出常规方式去解决问题,可能会更加好。常规方法能够解决问题但是未免有些臃肿。在实践的采坑中体会更有意思

inheritAttrs + $attrs + $listeners

inheritAttrs :默认是 true

我的解释就是:没有被子组件继承的父组件属性,不会当做特性展示在子组件根元素上面。说起来,听起来好像有些拗口,看截图看代码你就明白了

inheritAttrs :false

如何实现Vue父子组件数据传递如何实现Vue父子组件数据传递

inheritAttrs :false

如何实现Vue父子组件数据传递如何实现Vue父子组件数据传递

c=’ture1.png’>

官方解释:默认情况下父作用域的不被认作 props 的特性绑定 ( attribute bindings ) 将会“回退”且作为普通的 HTML 特性应用在子组件的根元素上。当撰写包裹一个目标元素或另一个组件的组件时,这可能不会总是符合预期行为。通过设置 inheritAttrs 到 false ,这些默认行为将会被去掉。而通过 (同样是 2.4 新增的) 实例属性 $attrs 可以让这些特性生效,且可以通过 v-bind 显性的绑定到非根元素上。

$attrs

我的解释就是:存放没有被子组件继承的的数据对象;看看图

如何实现Vue父子组件数据传递

官方文档解释:包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind=”$attrs” 传入内部组件——在创建高级别的组件时非常有用。

$listeners

我的理解就是:子组件可以触发父组件的事件(不需要用什么那些麻烦的vuex或者一个空的 Vue 实例作为事件总线,或者又是什么 vm.$on )

如何实现Vue父子组件数据传递

官方文档解释:包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on=”$listeners” 传入内部组件——在创建更高层次的组件时非常有用。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用JS实现百度搜索框

怎样使自己的js代码国际化

以上就是如何实现Vue父子组件数据传递的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2758654.html

(0)
上一篇 2025年3月8日 08:15:42
下一篇 2025年3月8日 08:15:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用vue地区选择组件

    这次给大家带来如何使用vue地区选择组件,使用vue地区选择组件的注意事项有哪些,下面就是实战案例,一起来看一下。 概述 主要用于全国地区数据的操作,包括省,市,区三级联动,地区数据的添加和删除; 在操作地区数据时,以前也用过树形的地区选择…

    编程技术 2025年3月8日
    200
  • Ajax点击不断加载数据列表(图文教程)

    这篇文章主要介绍了ajax点击不断加载数据列表的相关资料,需要的朋友可以参考下 Ajax简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页…

    2025年3月8日
    200
  • 无限分级和tree结构数据增删改

    这篇文章主要介绍了无限分级和tree结构数据增删改的相关资料,需要的朋友可以参考下 阅读目录 •无限分级•jstree插件•Demo•创建Region实体•满足jstree插件的数据对象Dto•数据转换•初始化获取转换后的数据•前台数据加载…

    2025年3月8日
    200
  • 编写轻量ajax组件第三篇实现

    这篇文章主要为大家详细介绍了轻量ajax组件编写第三篇实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 通过之前的介绍,我们知道要执行页面对象的方法,核心就是反射,是从请求获取参数并执行指定方法的过程。实际上这和asp.net mvc…

    编程技术 2025年3月8日
    200
  • ajax请求之返回数据的顺序问题分析

    这篇文章主要介绍了ajax请求之返回数据的顺序问题,结合实例形式分析了ajax请求返回值的排序问题,需要的朋友可以参考下 本文实例分析了ajax请求之返回数据的顺序问题。分享给大家供大家参考,具体如下: ajax请求一个url,php后端处…

    编程技术 2025年3月8日
    200
  • Ajax异步提交数据返回值的换行问题实例分析

    这篇文章主要介绍了ajax异步提交数据返回值的换行问题,结合实例形式较为详细的分析了ajax异步提交过程中返回值带有换行的处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了Ajax异步提交数据返回值的换行问题。分享给大家供…

    编程技术 2025年3月8日
    200
  • 如何实现vue-cli组件导入与使用

    这次给大家带来如何实现vue-cli组件导入与使用,实现vue-cli组件导入与使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一个文件就是一个模块,需要引入模块,和暴露模块的方法 在一个组件中使用另一个组件三部曲:引入组件、注册组…

    2025年3月8日 编程技术
    200
  • 怎样操作vue select组件使用与禁用

    这次给大家带来怎样操作vue select组件使用与禁用,操作vue select组件使用与禁用的注意事项有哪些,下面就是实战案例,一起来看一下。 业务:消息推送方式有两种,为“微信”和“邮件”,微信发送时需要选择“要发送的应用程序”,邮件…

    2025年3月8日
    200
  • 如何用vue写一个自定义组件

    这次给大家带来如何用vue写一个自定义组件,用vue写一个自定义组件的注意事项有哪些,下面就是实战案例,一起来看一下。 写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目。如果还不知道怎么用web…

    编程技术 2025年3月8日
    200
  • 如何操作vue组件使用props传递数据

    这次给大家带来如何操作vue组件使用props传递数据,操作vue组件使用props传递数据的注意事项有哪些,下面就是实战案例,一起来看一下。 在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递。父组件通过 prop…

    2025年3月8日
    200

发表回复

登录后才能评论