[vue3]组件通信

自定义属性

父组件中给子组件绑定属性, 传递数据给子组件, 子组件通过props选项接收数据

props传递的数据, 在模版中可以直接使用{{ message }}, 在逻辑中使用props.message

defineProps

defineProps是编译器宏函数, 就是一个编译阶段的标识, 实际编译器解析时, 遇到后会进行编译转换

自定义事件

父组件中给子组件标签绑定自定义事件, 子组件通过emit方法触发事件, 传递数据给父组件

模版引用

通过ref标识获取真实的DOM对象或者组件实例对象, 叫做模版引用

获取DOM对象

import {ref} from 'vue'
//1,生成一个ref对象 
const inp = ref(null)
//2,绑定ref标识
<input ref='inp' />
//3,访问ref对象
onMounted(() => {注意: 操作DOM需要组件完毕console.log(inp.value)
})

获取组件实例

import {ref} from 'vue'
const sun = ref(null)
onMounted(() => {// 注意: 组件挂载完毕// 获取组件属性console.log(sun.value.属性)// 调用组件方法console.log(sun.value.方法())
})
<sun ref="sun"><sun>

defineExpose

setup语法糖下 组件内部的属性和方法 是不开放的, 需要通过defineExpose编译宏暴漏组件的属性和方法

provide()和inject()

可以方便的跨层级传递数据和方法

场景

1.0传递普通数据

顶层组件通过provide函数提供数据, 底层组件通过inject函数获取数据

2.0传递响应式数据

3.0传递方法

顶层组件可以向底层组件传递方法, 底层组件调用顶层组件的方法, 就可以实现修改数据

defineModel

在vue3中, 自定义组件上使用v-model. 相当于传递modelValue属性, 触发 update:modelValue 事件

先要定义props, 再定义emits, 其中有许多重复代码,如果修改值, 还需要手动调用emit函数

<Child v-model="text">
等同于
<Child :modelValue="text"  @update:modelValue=" text = $event " >
defineProps({modelValue: String
})
const emit = defineEmits(['update:modelValue'])<inputtype="text":value="modelValue"@input="e => emit('update:modelValue', e.target.value)"  
>

defineModel

使用新的函数(实验阶段)简化代码

<Child v-model="text">
import {defineModel} from 'vue'
const modelValue = defineModel()<inputtype="text":value="modelValue"@input="modelValue = e.target.value"  
>
export default defineConfig({plugins: [vue({script: {// 开启支持defineModel: true}}),],
})

全局变量

vue2

设置

语法: Vue.prototype.属性名 = 属性值

Vue.prototype.$echarts = echarts

读取

语法: this.属性名

<template> this.$echarts.init()
</script>

vue3

设置

语法: app.config.globalProperties.属性名 = 属性值

import { createApp } from 'vue'; 
import App from './App.vue'; 
const app = createApp(App); 
// 假设您已经验证了 URL 结构并确定要提取的部分 
const path = window.location.href.split("/")[5] || 'default-path'; 
app.config.globalProperties.$path = path; 
app.mount('#app');

读取

语法: const 变量 = getCurrentInstance()?.appContext.config.globalProperties.属性名

<template> <div>当前路径是:{{ path }}</div> 
</template> <script>
import { getCurrentInstance, ref, onMounted } from 'vue'; 
export default { setup() { const path = ref(null); onMounted(() => { const instance = getCurrentInstance(); if (instance) { path.value = instance.appContext.config.globalProperties.$path;} });return { path }; }, 
}; 
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/28640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 是否扼杀了开源 MySQL

Oracle 是否无意中扼杀了开源 MySQL Peter Zaitsev是一位俄罗斯软件工程师和企业家&#xff0c;曾在MySQL公司担任性能工程师。大约15年前&#xff0c;当甲骨文收购Sun公司并随后收购MySQL时&#xff0c;有很多关于甲骨文何时“杀死MySQL”的讨论。他曾为甲骨文进行辩护&#…

【GD32F303红枫派使用手册】第十七节 USART-中断串口收发实验

17.1 实验内容 通过本实验主要学习以下内容&#xff1a; 使用中断进行串口收发 17.2 实验原理 前面章节中我们已经学习了串口的状态标志位&#xff0c;本实验就是使用TBE中断和RBNE中断来实现中断收发数据&#xff0c;实验原理是RBNE中断用来接受数据&#xff0c;IDLE中断用…

记录第一次edusrc挖掘

文章目录 一、前言二、漏洞说明截止目前已修复 一、前言 edusrc平台介绍 我们可以在关于页面看到edusrc的收录规则 现阶段&#xff0c;教育行业漏洞报告平台接收如下类别单位漏洞&#xff1a; 教育部 各省、自治区教育厅、直辖市教委、各级教育局 学校 教育相关软件 可以看到…

基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真&#xff0c;使用MATLAB编程实现&#xff0c;包括FOC控制器&#xff0c;clark&#xff0c;park等&#xff0c;不使用…

【PyQt5】一文向您详细介绍 self.setGeometry() 的作用

【PyQt5】一文向您详细介绍 self.setGeometry() 的作用 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本…

linux下的进程通讯

一. 实验内容 1&#xff0e;编写一个程序&#xff0c;实现在两个进程之间运用管道进行通讯。程序中创建一个子进程&#xff0c;然后父、子进程各自独立运行。父进程不断地在标准输入设备上读入小写字母&#xff0c;写入管道。子进程不断地从管道中读取字符&#xff0c;转换为大…

充电宝什么牌子耐用?2024年四大品牌推荐!这四款值得入!

在现代生活中&#xff0c;充电宝已经成为我们日常必备的数码配件之一。无论是旅行、出差还是日常通勤&#xff0c;拥有一款耐用且高效的充电宝&#xff0c;能够为我们的电子设备提供源源不断的电力支持。然而&#xff0c;市场上充电宝品牌众多&#xff0c;质量参差不齐&#xf…

深入理解 Java 中的 volatile 关键字

暮色四合&#xff0c;晚风轻拂&#xff0c;湖面上泛起点点波光&#xff0c;宛如撒下了一片星河。 文章目录 前言一、CPU 三级缓存二、JMM三、并发编程正确性的基础四、volatile 关键字五、volatile 可见性六、volatile 有序性6.1 指令重排序6.2 volatile 禁止指令重排6.3 vola…

如何区分人工智能生成的图像与真实照片(下)

4 功能上的不合理性 AI 生成的图像往往会因为缺乏对现实世界物体结构和相互作用的了解&#xff0c;而产生各种功能不合理之处。这些不合理之处主要表现在以下几个方面&#xff1a; 4.1 构图不合理 物体关系不合逻辑: AI 生成的图像中&#xff0c;物体和人物之间的关系可能不符…

python3GUI--记账助手By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;开发环境三&#xff0e;预览1.登录&注册2.主界面3.新增账单1.当前日期2.选择日期3.添加成功 4.删除账单4.筛选账单5.账单数据汇总1.日账单2.月账单3.年账单 四&#xff0e;设计心得1.项目代码结构2.UI设计概览3.UI设计详细1.登录…

人员的社保缴纳情况直接影响设计资质的延续结果。

是的&#xff0c;人员的社保缴纳情况会直接影响设计资质的延续结果。社保缴纳情况是评估企业运营稳定性和合规性的重要指标之一&#xff0c;特别是在设计资质延续的审核过程中。 设计资质延续时&#xff0c;相关部门会要求企业提供涉及资质延续所需人员的社保缴纳证明&#xff…

kettle学习(利用jsonPath定位,json文件转换)

kettle学习&#xff08;利用jsonPath定位&#xff0c;json文件转换&#xff09; 于数据处理的广袤天地间&#xff0c;我们时常需应对各类繁杂状况与各式格式。Kettle 作为极具威力的数据集成利器&#xff0c;赋予了我们诸多功能与无限可能此次博客里&#xff0c;我们将重点投向…

如何在电磁仿真软件CST中获得多天线同频的SAR

上期介绍了多天线不同频率情况下如何计算SAR&#xff0c;不用考虑相位差&#xff1b;这期我们看看MIMO&#xff0c;多天线同频&#xff0c;考虑相位差&#xff1a; 简单模型&#xff0c;一只手和两个天线&#xff1a; 工作频率2GHz&#xff1a; 仿真结束查看S11&#xff1a; 查…

KEPServerEX远程配置功能一键Get

远程配置功能&#xff0c;其实是通过KEPServerEX REST 接口及 HTTP 协议命令&#xff0c;对 KEPServerEX Runtime 运行环境进行配置的查询及更改。 右键点击系统托盘处的KEPServerEX Administration 图标&#xff0c;选择Settings | Configuration API Service; 如图设置&…

Windows WPS ppt幻灯片 保存文件时候 PPT文件大小变大 ppt文件太大 解决方案

Windows WPS ppt 幻灯片 保存文件时候 PPT文件大小突然变大&#xff0c;原先只有10M的大小增加到40M 关于wps的ppt文件变大&#xff0c;指的是&#xff1a;明明ppt幻灯片页数和图片都不多&#xff0c;只是稍微修改两个文字&#xff0c;保存时&#xff0c;文件大小增加了不少&a…

android studio CreateProcess error=2, 系统找不到指定的文件

【问题记录篇】 在AndroidStudio编译开发jni相关工程代码的时候&#xff0c;编译遇到的这个报错&#xff1a; CreateProcess error2, 系统找不到指定的文件。排查处理步骤: 先查看Build Output的具体日志输出 2.了解到问题出在了NDK配置上&#xff0c;此时需要根据自己的gra…

模型算法—线性回归

线性回归是统计学中最常见的一种回归分析方法&#xff0c;用于建立自变量&#xff08;解释变量&#xff09;和因变量&#xff08;响应变量&#xff09;之间的线性关系。线性回归模型可以用来预测一个或多个自变量对应的因变量的值。 线性回归的基本形式如下&#xff1a; &…

【ElasticSearch】ElasticSearch基本概念

ES 是一个开源的高扩展的分布式全文检索引擎&#xff0c;它是对开源库 Luence 的封装&#xff0c;提供 REST API 接口 MySQL 更适合数据的存储和关系管理&#xff0c;即 CRUD&#xff1b;而 ES 更适合做海量数据的检索和分析&#xff0c;它可以秒级地从数据库中检索出我们感兴…

SSH概念、用途、详细使用方法

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

Excel中多条件判断公式怎么写?

在Excel里&#xff0c;这种情况下的公式怎么写呢&#xff1f; 本题有两个判断条件&#xff0c;按照题设&#xff0c;用IF函数就可以了&#xff0c;这样查看公式时逻辑比较直观&#xff1a; IF(A2>80%, 4, IF(A2>30%, 8*(A2-30%),0)) 用IF函数写公式&#xff0c;特别是当…