Vue组件之间的参数传递与方法调用的实例详解

 更新时间:2022年12月05日 09:26:10   作者:喵酱爱吃鱼  
这篇文章主要介绍了Vue组件之间的参数传递与方法调用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

父组件向子组件

1.父组件向子组件传参:父组件中的子组件标签中增加 :param="param"

子组件中增加 props 接受参数(注意props需要与data同级)

props: {
  param: {
    type: Object
  }
},
data() {
    return {
        ...
    }
},

2.父组件调用子组件方法:父组件中子组件的标签增加 ref="abc"

例如:

<child ref="abc"></child>

然后在父组件中使用 refs直接调用子组件方法

例如:

this.$refs.abc.XXX()

子组件调用父组件方法

1.父组件中子组件的标签注册方法 @abc="XXX"

子组件中使用$emit 调用父组件方法

例如:

// 无参
this.$emit('abc')
​
// 带参
this.$emit('abc', {params})

2.子组件使用$parent

例如:

// 方法
    this.$parent.abc()  
    
    // 属性
    this.$parent.abcd = 1

其它组件间调用

可以使用EventBus

在被调用的组件中使用EventBus.$on,在调用的组件中使用EventBus.$emit

例如:

被调用的组件中:

created() {
    EventBus.$off('Name')
    EventBus.$on('Name', (data1, data2) => {
        this.method(data1,data2)
    })
}

调用的组件中:

EventBus.$emit('Name', res.data.list, flag)

补充:

props的几种写法:

// 默认写法
  props: {
    btnClick: {
      type: Function,
      default: function() {}
    },
    titleName: {
      type: String,
      default: "内容"
    },
    display: {
      type: String,
      default: "table" 
    },
    columnNum: {
      type: Number,
      default: 1
    },
    columnslist: {
      type: Array,
      default() {
        return [];
      }
    },
    showPage: {
      type: Boolean,
      default: true
    },
    apiData: {
      type: Object,
      default() {
        return {};
      }
    },
    param: {
      type: Object,
      default() {
        return {};
      }
    },
    defaultParam: {
      type: Boolean,
      default() {
        return true;
      }
    }
  },

注意:如果默认值的类型为数组或者对象的话,一定要在函数中返回这个默认值,而不是直接写,否则会报错

// 正确:
 datalist:{
     type:Array,
     default:function(){
         return []
     }
 }
​
// 错误
 datalist:{
     type:Array,
     default:[]
 }
 
// 或者直接跟上面第一个代码一样,不管什么类型,都写在函数返回中。

补充2:VUE 父组件动态传值给子组件

https://www.jb51.net/article/127980.htm

到此这篇关于Vue组件之间的参数传递与方法调用的实例详解的文章就介绍到这了,更多相关vue参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vite打包优化CDN压缩的分析实现

    vite打包优化CDN压缩的分析实现

    我们在日常的工作中肯定会遇到项目打包优化等问题,本文主要介绍了vite打包优化CDN压缩的分析实现,具有一定的参加价值,感兴趣的可以了解一下
    2024-07-07
  • vue.js获取数据库数据实例代码

    vue.js获取数据库数据实例代码

    本篇文章主要介绍了vue.js获取数据库数据实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 解读为什么vue前端项目要使用Nodejs

    解读为什么vue前端项目要使用Nodejs

    这篇文章主要介绍了解读为什么vue前端项目要使用Nodejs问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • node+vue前后端分离实现登录时使用图片验证码功能

    node+vue前后端分离实现登录时使用图片验证码功能

    这篇文章主要介绍了node+vue前后端分离实现登录时使用图片验证码,记录前端使用验证码登录的过程,后端用的是node.js,关键模块是svg-captcha,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • vite如何构建vue3项目

    vite如何构建vue3项目

    本文介绍了如何使用Vite快速搭建Vue项目,强调Vite对Node.js版本有最低要求(>=12.0.0),提供了环境准备、安装步骤和启动指南,旨在帮助开发者高效启动Vue项目
    2024-10-10
  • Vue中nextTick的原理分析

    Vue中nextTick的原理分析

    本文详细介绍了Vue中nextTick的原理和使用方法,Vue采用异步渲染机制,通过nextTick可以确保在DOM更新后执行回调,nextTick依赖微任务和宏任务,优先使用Promise,降级到MutationObserver/setTimeout,Vue3进一步优化了nextTick,减少了复杂度并提升了性能
    2025-02-02
  • 解决vue 退出动画无效的问题

    解决vue 退出动画无效的问题

    这篇文章主要介绍了解决vue 退出动画无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue中watch清除过期副作用的案例详解

    Vue中watch清除过期副作用的案例详解

    在这里就不过多说watch的用法了,这篇文章主要通过案例带大家了解一下如何清除过期的副作用。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • vue实现组件跟随鼠标位置弹出效果(示例代码)

    vue实现组件跟随鼠标位置弹出效果(示例代码)

    这篇文章主要介绍了vue中实现组件跟随鼠标位置弹出效果,本文通过图文示例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 深入了解Vue3 中 this的使用

    深入了解Vue3 中 this的使用

    在Vue3中,this的使用方式与Vue2存在较大差异,尤其是在引入组合式API后,本文详细解析了Vue3中this的使用情况、底层源码和设计理念,并提供了面试技巧,感兴趣的可以了解一下
    2024-09-09

最新评论