• 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的例子,

  • 相关阅读:
    北京/上海/广州/深圳DAMA-CDGA/CDGP数据治理认证报名条件
    654. Maximum Binary Tree
    基于ssm的养老智慧服务平台毕业设计源码071526
    【Two Stream network (Tsn)】(二) 阅读笔记
    C++20中的关键字
    基于FPGA的任意字节数(单字节、多字节)的串口(UART)发送(含源码工程)
    【‘Integer(int)‘ 已经过时了】
    【C++风云录】跨界开发:C++中集成和扩展动态语言的路线指南
    【2022】年度总结
    vue-cli查看相关版本以及更新配置
  • 原文地址:https://blog.csdn.net/qq_32907491/article/details/133444907