Vue3 中的组件 provide和inject 传值、获取组件实例的方法getCurrentInstance()
一、 provide和inject(依赖注入)
1:在父级组件中提供数据
2: 在子级组件中获取收据
二、在Vue3中获取组件实例的方法getCurrentInstance(),需要在父组件中暴露传给子组件的属性或方法defineExpose()
在vue2中获取组件的实例 this
案例
父组件:
<template>
<div>
<h2>组件的数据传递 provider 和 inject</h2>
<!--
1:在父级组件中提供数据
语法:provide('提供给子组件的变量名',提供给子组件的数据)
2: 在子级组件中获取收据
语法:let nums=inject('父组件传过来的变量名');
-->
<BackTop></BackTop>
<Winput></Winput>
</div>
</template> <script setup>
import BackTop from "./HeightComponent/BackTop.vue"
import Winput from "./HeightComponent/Winput.vue"
import { ref, provide } from 'vue'; let num = ref("200");
provide('num', num) // 让其他组件可以获取到得数据 => 将它暴露出去
const getF=()=>{
console.log(100);
}
defineExpose({
num,getF
}) </script> <style> </style>
// 子组件1 BackTop
<template>
<!--
项目中高频使用的组件
注册成 全局组件
语法: App.component('组件名称',组件)
vue项目中 组件 形式 1)vue 文件 =>{}
-->
<div>
返回头部 {{nums}}
</div>
</template> <script setup>
import {inject} from 'vue'
let nums=inject('num'); </script> <style scoped> </style>
// 子组件2 Winput
<template>
<div>input</div>
</template> <script setup>
import { getCurrentInstance } from 'vue';
// 1 搜索到组件他的父亲组件 => app.vue
// 2 在搜索组件中获取到父组件中得一些方法和属性
// 获取当前组件实例vue2 this vue3 => getCurrentInstance
let {ctx}=getCurrentInstance();
console.log(ctx);
console.log(ctx.$parent);
</script> <style scoped> </style>
Vue3 中的组件 provide和inject 传值、获取组件实例的方法getCurrentInstance()的更多相关文章
- VUE3 之 ref、provide、inject 的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 首因效应告诉我们: 在日常交往中,第一印象是非常重要的,好的第一印象能让我们在与人相处时事半功倍. 但也从另一面告诉我们,不能仅凭第一印象去判断一个人,有时虚假的第一印象,也有可能蒙蔽我们 ...
- vue单文件组件data选项的函数体获取vue实例对象
因配置的关系,导致 vue的data选项中存在事件.而事件无法获取 vue 的实例对象:项目是单文件形式的,以下代码只是例子 new Vue({ el:..., data:{ a: { onevent ...
- vue2使用组件进行父子互相传值的sync语法糖方法和原生方法
原生方法:(事件名可以不在props通道里) 子类通过props通道绑定父类里data里的jjjjjj(@:fefefeff='jjjjjjjjjjjjj') 父组件通过监听fefeff事件来把子类传 ...
- Spring容器中获取bean实例的方法
// 得到上下文环境 WebApplicationContext webContext = ContextLoader .getCurrentWebApplicationContext(); // 使 ...
- vue之provide和inject跨组件传递属性值失败(父组件向子组件传值的两种方式)
简单介绍:当一个子组件需要用到父组件的父组件的某些参数.那么这个时候为了避免组件重复传参,使用vue的依赖注入是个不错的方法,直接在最外层组件设置一个provide,内部不管多少嵌套都可以直接取到最外 ...
- vue 高级属性父组件provide向子组件发送数据,子组件通过inject接收数据
以前父组件向子组件中传值是通过props传值,子组件不能更改父组件中的值,但是可以通过从父组件中获取的值定义给自己的data值,这里父组件可以通过provide向子组件传递自己组件中的data值,子组 ...
- 简述在Vue脚手架中,组件以及父子组件(非父子组件)之间的传值
1.组件的定义 组成: template:包裹HTML模板片段(反映了数据与最终呈现给用户视图之间的映射关系) 只支持单个template标签: 支持lang配置多种模板语法: script:配置Vu ...
- vue2.0与3.0中的provide和inject 用法
1.provide/inject有什么用? 常用的父子组件通信方式都是父组件绑定要传递给子组件的数据,子组件通过props属性接收,一旦组件层级变多时,采用这种方式一级一级传递值非常麻烦,而且代码可读 ...
- VUE004. provide与inject的使用(祖先组件隔多层传静态值给子孙组件)
provide和inject可以通过祖先组件隔三层四层甚至隔着九层妖塔传值给子孙组件. 需要注意的是这样的传值方式是非响应式的,需要结合自身的应用场景,比如将上传的限制条件通过父组件传值给子组件的子组 ...
- Vue中组件通信的几种方法(Vue3的7种和Vue2的12种组件通信)
Vue3组件通信方式: props $emit expose / ref $attrs v-model provide / inject Vuex 使用方法: props 用 props 传数据给子组 ...
随机推荐
- 【element】el-table-column日期格式化
要对一列日期进行格式化.可使用formatter属性,它用于格式化指定列的值,接受一个Function,会传入两个参数:row和column,可以根据自己的需求进行处理. 参阅element官网 在e ...
- 树莓派蓝牙rfcomm协议通信
修改配置文件 手机使用 "蓝牙串口" 软件,树莓派上修改文件/etc/systemd/system/dbus-org.bluez.service ExecStart=/usr/li ...
- 【Flume】概述及组成、入门案例、进阶(事务、拓扑结构)、不同拓扑案例、自定义、数据流监控Ganglia
一.概述 1.定义 日志采集.聚合.传输的系统,基于流式结构 即:读取本地磁盘数据,写入HDFS或kafka 2.架构 Agent:JVM进程,以事件形式将数据送到目的地. Agent由三部分组成:S ...
- Flutter异常监控 - 壹 | 从Zone说起
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情 如果你正需要处理Flutter异常捕获,那么恭喜你,找对地了,这里从根源上给你准备了Flutter异常捕获 ...
- [深度学习] 神经网络的理解(MLP RBF RBM DBN DBM CNN 整理学习)
转载于 http://lanbing510.info/2014/11/07/Neural-Network.html 开篇语 文章整理自向世明老师的PPT,围绕神经网络发展历史,前馈网络(单层感知器,多 ...
- [python]《Python编程快速上手:让繁琐工作自动化》学习笔记6
1. 发送电子邮件和短信笔记(第16章)(代码下载) 1.1 发送电子邮件 简单邮件传输协议(SMTP)是用于发送电子邮件的协议.SMTP 规定电子邮件应该如何格式化.加密.在邮件服务器之间传递,以及 ...
- mac下 idea 注释快捷键冲突
你好,我是悦创. 博客首发:https://bornforthis.cn/posts/28.html 打开偏好设置,将冲突的快捷键关掉,就可以解决 idea 使用注释快捷键,会打开 help 页面的问 ...
- python之路35 MySQL 3 字段的约束条件 外键关系
字段约束条件 无符号.零填充 unsigned id int unsigned zerofill id int(5) zerofill 非空 create table t1( id int, name ...
- 音乐解锁工具v1.10.3,QQ音乐,网易云,酷狗音乐格式转换工具,ncm转mp3,kgm转mp3,kgma转mp3,mgg转mp3,mflac转mp3,qmc转mp3,xm转mp3,kwm转mp3
现在主流的听歌软件开会员听歌和下载单曲已经是两套业务了,即使开了会员下载的单曲也只能用固定的播放器进行播放,不能使用其他软件播放. 目前QQ音乐.网抑云音乐.酷狗等会员歌曲下载后都不再是传统的音频文件 ...
- &#127538;Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...