Vue常用的组件通信方式

本篇文章给大家详细介绍一下vue常用的组件通信方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Vue常用的组件通信方式

组建通信的基本模式:父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息

在这里插入图片描述
组件通信的常用三种方式

1.props(父组件向子组件传值)

parent.vue

立即学习“前端免费学习笔记(深入)”;

   

      

import child from "./child" export default { components: { "parent-child" : child },data(){ return { childName : "我是child哦" } } }

登录后复制

child.vue

  

    child的名字叫:{{childName}}
  

export default { props:{ childName :{ type:String, default: "" } } }

登录后复制

2.$emit(子组件向父组件传值–局部消息订阅)

parent.vue

立即学习“前端免费学习笔记(深入)”;

  

      

import child from "./child" export default { components: { "parent-child" : child },data(){ return { childName : "我是child哦" } },methods:{ childReceive(params){ this.$message(params) } } }

登录后复制

child.vue

  

    child的名字叫:{{childName}}
  

export default { props:{ childName :{ type:String, default: "" } },methods:{ childNotify(params){ this.$emit("childNotify","child的名字叫"+this.childName); } } }

登录后复制

3.bus全局消息订阅

bus.js

const install = (Vue) => {  const Bus = new Vue({    methods: {      on (event, ...args) {        this.$on(event, ...args);      },      emit (event, callback) {        this.$emit(event, callback);      },      off (event, callback) {        this.$off(event, callback);      }    }  })  Vue.prototype.$bus = Bus;}export default install;

登录后复制

main.js

import Bus from "./assets/js/bus";Vue.use(Bus);

登录后复制

child.vue

  

    child的名字叫:{{childName}}
    向child2打招呼  

export default { props:{ childName :{ type:String, default: "" } },methods:{ childNotify(params){ this.$emit("childNotify","child的名字叫"+this.childName); }, brotherNotity(){ this.$bus.$emit("child2","child2你好呀"); } } }

登录后复制

child2.vue

  

    child2的名字叫:{{child2Name}}  

export default { props:{ child2Name :{ type:String, default: "" } }, created(){ this.$bus.$on("child2",function(params){ this.$message(params) }) }, beforeDestroy() { this.$bus.$off("child2",function(){ this.$message("child2-bus销毁") }) } }

登录后复制

推荐学习:vue.js教程

以上就是Vue常用的组件通信方式的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月13日 05:36:27
下一篇 2025年3月10日 22:37:08

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

相关推荐

  • Vue如何封装一个TodoList

    本篇文章给大家详细介绍一下vue封装一个todolist的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 使用Vue封装一个简易的Todolist的小案例. 同时加入了浏览器本地缓存的技术手段. 浏览器本地缓冲: 前…

    2025年3月13日 编程技术
    200
  • 如何在vue中使用umy-ui

    本篇文章给大家详细介绍一下在vue中使用umy-ui的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1.下载umy-ui      http://www.umyui.com/ npm install  umy-ui…

    2025年3月13日
    200
  • vuex使用场景是什么

    vuex使用场景:1、用户的个人信息管理模块;2、电商项目的购物车模块;3、我的订单模块,订单列表中点击取消订单,然后更新对应的订单列表;4、在订单结算页,获取需要的优惠券,并更新订单优惠信息。 本教程操作环境:windows7系统、vue…

    2025年3月13日
    200
  • vue组件传值的方法有哪些

    vue组件传值的方法:1、父向子传值使用props;2、子向父传值使用“$emit”;3、使用EventBus或Vuex进行兄弟传值;4、使用“provide/inject”或“$attrs/$listeners”方法进行跨级传值。 本教程…

    2025年3月13日
    200
  • vue传值有哪8种方法

    传值方式有:props和“$emit”、“$attrs”和“$listeners”、中央事件总线、v-model、provide和inject、“$parent”和“$children”、vuex、localStorage/session。…

    2025年3月13日
    200
  • vue组件中如何引入css文件

    在vue中,可以使用“@import”规则引入css文件,只需要在style标签中添加“@import css样式地址”即可。“@import”规则用于从其他样式表导入样式规则,该规则必须先于所有其他类型的规则。 本教程操作环境:windo…

    2025年3月13日
    200
  • 2022年值得收藏的17个Vue 后台管理模板

    本篇文章给分享17个值得收藏的vue后台管理模板。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《vue.js教程》 后面的模板是我们做后台管理系统经常所需要的东西。 虽然,我们总可以花很多时间从头开始设计自己…

    2025年3月13日 编程技术
    200
  • vue兄弟组件传值有哪五种方法

    五种方法为:1、父组件向子组件进行传值;2、子组件向父组件进行传值;3、父组件中的标签上定义自定义事件,在事件内部获取参数;4、在子组件中触发自定义事件,并传参;5、通过公共组件Bus.js,进行传参。 本教程操作环境:windows7系统…

    2025年3月13日
    200
  • vue路由跳转的三种方式是什么

    跳转方式:1、使用“”语句;2、使用“this.$router.push({ path:’/user’})”语句;3、使用“this.$router.replace{path:’/’}”语句。 本教程操作环境:win…

    2025年3月13日
    200
  • $nextTick VS setTimeout,看看它们的差异

    本篇文章给大家简单对比一下$nexttick 与 settimeout,看看它们之间有什么差异。 一个前端开发人员(小智)走进了一个Vue酒吧。小智点了他最喜欢的鸡尾酒:Nuxt。酒保正在努力制作中。然后他自己就唠叨了起来。 小智讲述了他是…

    2025年3月13日
    200

发表回复

登录后才能评论