vue组件间传值的方法你知道几种

 更新时间:2022年02月11日 10:32:21   作者:最好的我们,  
这篇文章主要为大家详细介绍了vue组件间传值的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一丶父子组件传值

先在父组件中给子组件的自定义属性绑定一个 父组件的变量

<template class="father">
   <child :自定义属性名="父组件的变量"></child> 
<template >

在子组件的props属性中可以取出父组件给的值,props中的变量用法和data中变量用法完全一样,只不过值的来源不同

export default {
	name: "child",
	props: ["自定义属性名"],
    data() {}
}

二丶子父组件传值

先在父组件中给子组件的 自定义属性 绑定一个父组件的函数

<template class="father">  
	<child  @自定义事件="父的处理函数">
<template >
export default {
	name: "father",
	data() {}
	methods:{
		父的处理函数(参数){
            //参数:得到子组件触发事件($emit)时,传递过来的数据
        }
    }
})

在子组件中 this.$emit(“父的处理函数”,this.数据) 触发父组件中的函数进行传参

三丶兄弟组件传值

事件总线:

就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件

创建全局空Vue实例:eventBus

import Vue from 'vue';
const eventBus= new Vue()  //创建事件总线
export default eventBus;

具体页面使用$emit发布事件 - 传递值

import eventBus from '@u/eventBus'
eventBus.$emit('send',‘hello')

具体页面使用$on订阅事件 - 接收组件值

import eventBus from '@u/eventBus'
eventBus.$on('send', msg => {
	console.log(msg)  //控制台输出 hello
}

注意:$on先进行监听,一旦$emit发布事件后所有组件都可以$on监听到事件。所以传递参数的时候一定已经先进行了监听才能得到参数。比如在父组件中$emit事件放在mounted钩子函数中,等待子组件创建并$on开始监听事件后再去触发$emit发布事件。

$off()移除事件监听

import eventBus from '@u/eventBus'
eventBus.$off('send')  

事件订阅功能$on是$eventBus对象完成的,与组件无关,如果用v-if销毁子组件的时候,会形成闭包,造成内存泄露,所有要在销毁组件的时候进行取消监听事件

具体形成原因点击查看

四丶$parent /$children与ref

$parent方法是在子组件中可以直接访问该组件的父实例或组件。

在父组件中定义一个切换显示页面执行中的显示方法。

switchLoadPage(msg) {
    if(!this.loading && msg)
  		this.loadtext=msg;
  		this.loading = !this.loading;
},

​ 在子组件中直接通过$parent去调用该方法

this.$parent.switchLoadPage();

$children方法是在父组件中可以直接访问子组件的实例,但是不保证子组件的顺序。

ref 被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象进行注册。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例。

在父组件中自定义一个表格组件,给子组件加上 ref属性

<result ref="result" :config="dgConfig"  ></result>

在父组件中就可以通过this.$refs.result去找到result子组件进行操作,比如把父组件的sdata直接放入子组件中

methods: {
  	info(){
   		this.$refs.result.sdata = this.sdata;
    },
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!        

相关文章

  • 关于Ant-Design-Vue快速上手指南+排坑

    关于Ant-Design-Vue快速上手指南+排坑

    这篇文章主要介绍了关于Ant-Design-Vue快速上手指南+排坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue实现打印功能的两种方法

    vue实现打印功能的两种方法

    这篇文章主要介绍了vue实现打印功能的两种方法,文中通过两种方法给大家介绍了指定不打印区域的解决方法,需要的朋友可以参考下
    2018-09-09
  • vue项目代码格式规范设置参考指南

    vue项目代码格式规范设置参考指南

    这篇文章主要给大家介绍了关于vue3简单封装input组件和统一表单数据的相关资料,不管你学习哪一门编程语言,相信大家都会略化这一部分,需要的朋友可以参考下
    2022-05-05
  • Vue 使用超图SuperMap的实践

    Vue 使用超图SuperMap的实践

    作为一名刚入门计算机语言的人来说,要想快速完成测试开发地图项目,肯定要接用到SuperMap,本文主要介绍了Vue 使用超图SuperMap的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • vue实现二级导航栏效果

    vue实现二级导航栏效果

    这篇文章主要为大家详细介绍了vue实现二级导航栏效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Vue3中页面跳转方式总结

    Vue3中页面跳转方式总结

    Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,它提供了多种方法来实现页面之间的导航,本文将详细介绍 Vue 3 中的各种页面跳转方式,有需要的小伙伴可以参考一下
    2024-12-12
  • Vue.js 实现tab切换并变色操作讲解

    Vue.js 实现tab切换并变色操作讲解

    这篇文章主要介绍了Vue.js 实现tab切换并变色操作讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • uniapp模仿微信实现聊天界面的示例代码

    uniapp模仿微信实现聊天界面的示例代码

    这篇文章主要介绍了如何利用uniapp模仿微信,实现一个聊天界面。文中的示例代码讲解详细,对我们学习Vue有一定的帮助,感兴趣的可以了解一下
    2022-01-01
  • vue.js 嵌套循环、if判断、动态删除的实例

    vue.js 嵌套循环、if判断、动态删除的实例

    下面小编就为大家分享一篇vue.js 嵌套循环、if判断、动态删除的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 详解vue-element Tree树形控件填坑路

    详解vue-element Tree树形控件填坑路

    这篇文章主要介绍了vue-element Tree树形控件填坑路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论