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

  • 相关阅读:
    3GPP TS38.201 NR; Physical layer; General description (Release 18)
    Scala011--Scala中的常用集合函数及操作Ⅱ
    Java2-3年面试题
    Java8 stream 流
    珂朵莉树 学习笔记
    09 数据库查询(3) | OushuDB 数据库使用入门
    Codeforces暑期训练周报(8.15~8.21)
    LeetCode刷题---LRU缓存
    Linux系统内核作用
    iptables的使用简单测试
  • 原文地址:https://blog.csdn.net/qq_32907491/article/details/133444907