• Vue3父子组件数据传递


    getCurrentInstance方法

    Vue2中,可以通过this来获取当前组件实例;

    Vue3中,在setup中无法通过this获取组件实例,console.log(this)打印出来的值是undefined。

    在Vue3中,getCurrentInstance()可以用来获取当前组件实例。

    let { proxy } = getCurrentInstance();
    
    • 1

    在setup中分别打印下面3个值,结果如下:

    console.log(getCurrentInstance,typeof(getCurrentInstance));
    console.log(getCurrentInstance(),typeof(getCurrentInstance()));
    console.log(proxy,typeof(proxy));
    
    • 1
    • 2
    • 3

    可以看到,getCurrentInstance是一个function方法,getCurrentInstance()是一个对象,proxy也是一个对象。proxy是getCurrentInstance()对象中的一个属性,通过对象的解构赋值方式拿到proxy。

    getCurrentInstance只能在setup或生命周期钩子中使用

    用于线上环境使用方法:

    方法1:

    const instance = getCurrentInstance()
    console.log(instance.appContext.config.globalProperties)
    
    • 1
    • 2

    方法2:

    const { proxy } = getCurrentInstance()  
    
    • 1

    $emit使用方法

    许多Vue模式涉及使用props将数据从父组件传递到子组件。但如果我们需要一个子组件将数据传给它的父组件呢?

    使用 emit,我们可以触发事件并将数据传递到组件的层次结构中。这对下面几种情况很有用,如:

    • 从 input 中发出数据
    • 从 modal 本身内部关闭 modal
    • 父组件响应子组件

    Vue Emit是如何工作的?

    当我们 emit 一个事件时,我们用一个或多个参数调用一个方法:

    • eventName: string - 事件的名称
    • values: any - 通过事件传递的参数

    下面是一个内联 emit的例子,

  • 相关阅读:
    一篇文章带你搞定Java封装
    JAVASE总结作业----面向对象的三大特征
    Redis系列12:Redis 的事务机制
    OpenHarmony实战开发-Web自定义长按菜单案例。
    SQL-DML数据操纵语言(Oracle)
    mysql-通过binlog日志复制主从同步
    java使用QQ邮件发送
    图扑软件智慧云展厅,开启数字化展馆新模式
    用照片预测人的年龄【图像回归】
    自动驾驶之高精地图介绍
  • 原文地址:https://blog.csdn.net/qq_32907491/article/details/133444907