vue3 setup lang=“ts“ defineExpose

2023-05-16

vue3 setup lang=“ts” defineExpose

 /**
 * Vue `<script setup>` compiler macro for declaring a component's exposed
 * instance properties when it is accessed by a parent component via template
 * refs.
 *
 * `<script setup>` components are closed by default - i.e. variables inside
 * the `<script setup>` scope is not exposed to parent unless explicitly exposed
 * via `defineExpose`.
 *
 * This is only usable inside `<script setup>`, is compiled away in the
 * output and should **not** be actually called at runtime.
 */

机翻
Vue <script setup>编译器宏,当父组件通过模板引用访问它时,用来声明组件的公开实例属性。
<script setup>组件在默认情况下是关闭的——也就是说,<script setup>范围内的变量不会向父变量公开,除非通过defineExpose显式地公开。
这只在<script setup>中可用,在输出中编译,不应该在运行时实际调用。

● 暴露reactive对象的时候可以将响应式对象转换为普通对象
● 不然父组件只能拿到初始值
子组件

	<script setup lang="ts">
	const Son = reactive({
	  msg: 'Son',
	  coast: 120,
	});
	setInterval(() => {
	  if (Son.coast < 125) {
	    Son.coast++;
	  }
	}, 1000);
	/* type_one 这样可以获取响应式值 */
	const { coast, msg } = toRefs(Son);
	defineExpose({
	  coast,
	  msg,
	});
	/* type_two 这样只能获得初始值 */
	/* defineExpose({
	  coast: Son.coast,
	  msg: Son.msg,
	}); */
	</script>

父组件

	<template>
	  <Son ref="sonRef" />
	</template>
	<script setup lang="ts">
	import Son from './Son.vue';
	const sonRef = ref();
	watch([() => sonRef?.value?.coast], () => {
	  /** type_one
	   *  🚀 >>> sonRef.value.coast 120
	   *  🚀 >>> sonRef.value.coast 121
	   *  🚀 >>> sonRef.value.coast 122
	   *  🚀 >>> sonRef.value.coast 123
	   *  🚀 >>> sonRef.value.coast 124
	   *  🚀 >>> sonRef.value.coast 125
	   */
	  console.log('🚀 >>> sonRef.value.coast', sonRef.value.coast);
	  /** type_two
	   *  🚀 >>> sonRef.value.coast 120
	   */
	});
	</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3 setup lang=“ts“ defineExpose 的相关文章

  • vue3的一些知识点plus--3

    二十 兄弟组件传值 Bus 兄弟组件直接的传值 最基础的是通过同一个父级进行数值的传递 使用prop和emit 太过繁琐 父级 div a a b b div let flag ref false let getFlag params bo
  • vue3快速入门-Teleport传送(瞬移组件)

    Vue 的组件架构使我们能够将用户界面构建为能够精美地组织业务逻辑和表示层的组件 Teleporting是Vue 3发布带来的一项新功能 它的灵感来自React Portals 相同的门户是 React 中的一个常见功能 在 Vue2 的
  • Vue常用的修饰符有哪些?分别有什么应用场景?

    一 修饰符是什么 在程序世界里 修饰符是用于限定类型以及类型成员的声明的一种符号 在Vue中 修饰符处理了许多DOM事件的细节 让我们不再需要花大量的时间去处理这些烦恼的事情 而能有更多的精力专注于程序的逻辑处理 vue中修饰符分为以下五种
  • vue3.0基础知识浅谈

    vue3 0 首先创建vue3 0 项目 相比于vue2的变化 1 模板中可以没有根标签 2 main js中变化 组合API 一 setup 1 作用 2 返回值 3 注意点 4 参数 二 Ref函数 三 reactive函数 四 Ref
  • vue3 的 ref、 toRef 、 toRefs

    1 ref 对原始数据进行拷贝 当修改 ref 响应式数据的时候 模版中引用 ref 响应式数据的视图处会发生改变 但原始数据不会发生改变
  • vue3的provide

    provide 和 inject 通常成对一起使用 使一个祖先组件作为其后代组件的依赖注入方 无论这个组件的层级有多深都可以注入成功 只要他们处于同一条组件链上 provide 提供一个值 可以被后代组件注入 inject 注入一个由祖先组
  • 如何理解邮件中的“CC、PS、FYI”等英文缩写?

    文章目录 2015年皮卡丘大学毕业初 加入一家总部在荷兰的外企 刚入职邮件中的英文缩写把皮卡丘折磨的晕头转向 比如OOO CC FYI OMW 你知道这些缩写表达的意思吗 01 OOO 是什么意思 OOO千万别理解成 哦哦哦 OOO Out
  • Vue3全网最细介绍使用

    文章目录 一 Vue3介绍 二 Vue3项目创建 三 Setup 四 ref与reactive 五 setup context 六 计算属性 七 监听属性 八 Vue3生命周期 九 自定义hook函数 十 toRef 一 Vue3介绍 1
  • vue3中使用vueQuill富文本编辑器详细教程,图片上传-图片压缩

    vueQuill是支持vue3的富文本编辑器组件 使用简单方便 官方网址 https vueup github io vue quill 效果图 1 安装 在官网有详细的安装教程 npm或者yran下载 npm install vueup
  • vue3知识点:setup

    文章目录 二 常用 Composition API 1 拉开序幕的setup setup的两个注意点 本人其他相关文章链接 二 常用 Composition API 问题 啥叫 组合式API 答案 请看官方文档 https v3 cn vu
  • vue3.2 对el-table 树型结构数据的处理(干货)

    vue3 2 对el table 树型结构数据的处理 干货 将偏平数据转为树状结构的数据 封装了两种方法 将一维数组处理成带children的el tree树状数据结构 第一种方法 使用递归的方式处理偏平化数据 Method 使用递归的方式
  • vue3+ts深入组件(四)动态组件

    一 引入 掌握程度 了解 使用Vue时 有时会遇到tab切换 如下图 1 可实现方法 1 v if 2 component动态组件 3 使用vue Router 路由切换 2 对比 第一种方法 v if 这可能是我们能最快想到的解决办法 但
  • Vue3、setup的使用

    Vue3 setup ref reactive toRef toRefs 1 setup的使用 1 1 简介 1 2 setup注意点 1 3 定义响应式数据 1 4 toRefs 1 5 setup中执行方法 1 5 1 方式一 1 5
  • electron-vue2 项目初始化

    不要使用网上或者 github 的模板初始化项目 直接上代码 安装 vuecli 脚手架 npm update vue cli 初始化 project name 项目 vue create project name 进入项目 cd proj
  • vue3配置eslint 出现问题

    vue3配置eslint 出现问题 标题必须使用导入来加载 ES 模块 ESlint Error Must use import to load ES Module 加上这一行即可
  • 07Vue3-Vuex中计算数学getters应用

    getters Home vue
  • vant4 自定义垂直步骤条时间线组件几行css代码改造完成(附效果图)

    直接上效果图片
  • vue3中的readonly

    接受一个对象 不论是响应式还是普通的 或是一个 ref 返回一个原值的只读代理 只读代理是深层的 对任何嵌套属性的访问都将是只读的 它的 ref 解包行为与 reactive 相同 但解包得到的值是只读的 类型 function reado
  • Angular 通用 html lang 标签

    在 Angular Universal 中 我有一个 index html 文件 顶部有 我想根据我所在的页面更改此设置 maldonadoattorney com es jailreleases 将是 maldonadoattorney
  • Element-Puls中el-upload组件结合vue-draggable-plus实现上传支持拖拽排序(并保留el-upload原有样式、预览、删除)等功能

    展示效果 需求 需求想要一个可拖拽排序的图片列表 但是发现el upload虽然可以实现照片墙 但是没办法拖拽 实现思路 使用 vue draggable plus 拖拽插件 隐藏Upload原有的已上传文件列表 自定义上传后文件列表的样式

随机推荐

  • Error: failed to unmarshal json. invalid character “*”looking for beginning of value解决方案

    IPFS config时出现 Error failed to unmarshal json invalid character looking for beginning of value 在Win10 命令行执行ipfs config命令
  • Jsp的四种作用域范围

    首先要声明一点 xff0c 所谓 34 作用域 34 就是 34 信息共享的范围 34 xff0c 也就是说一个信息能够在多大的范围内有效 JSP的四种范围 xff0c 分别为page request session application
  • go 调用shell命令 两种方式(有无返回值)

    阻塞方式 需要执行结果 适用于执行普通非阻塞shell命令 xff0c 且需要shell标准输出的需要对shell标准输出的逐行实时进行处理的 非阻塞方式 不需要执行结果 官网的标准中文库 阻塞方式 需要执行结果 主要用于执行shell命令
  • linux内核链表应用--笔记

    Windows 应用linux内核链表 一 从网上现在linux kernel代码 linux内核版本有2种 稳定版 次版本为偶数 xff0c 开发版 次版本为奇数 版本号 主版本 次版本 释出版本 修改版本 内核下载连接网站 xff1a
  • STM32单片机产生PWM信号

    STM32单片机产生PWM信号 1 开发环境 目标单片机 STM32F407VET6芯片 xff0c 系统时钟高达168Mhz 开发平台 xff1a KEIL 5 编写程序借助ST公司的标准函数库 xff0c 不过现在已经不更新这个写函数库
  • 应用linux内核链表

    一 STM32应用linux内核链表 在此之前 xff0c 已经对Linux内核链表已经移植过一次 不过是针对Windows平台 xff0c 下面是链接 xff1a https blog csdn net qq 36883460 artic
  • 数据结构与算法 ---- C/C++

    数据结构与算法 C C 43 43 学习数据结构的目的 xff1a 针对不同的情况使用不同数据结构 xff0c 去解决不同的问题 一 线性表 线性表一般有几个函数 xff08 宏定义 xff09 xff1a 初始化线性表 List Init
  • 单片机低功耗

    单片机低功耗 如何减低整个系统功耗 xff1f 从两个方面下手 xff1a 软件 xff1f 硬件 xff1f 软件 xff1a 减少外设使用 xff08 不需要的就关掉 xff09 xff0c 减低时钟频率 xff0c 尽量选择低功耗模式
  • RS485通讯---Modbus数据链路层与应用层(二)

    前言 RS485通讯 Modbus物理层 xff1a https blog csdn net qq 36883460 article details 105630712 Modbus RTU通讯协议中OSI模型 xff0c 数据链路层和应用
  • 【笔记】MySQL 5+ 相同用户的数据,取最新登记日期的那条

    需求 xff1a MySQL5 43 处理 xff0c 下面表中 xff0c 用户名相同的数据 xff0c 取最新登记日期的登记号码 表名 xff1a userinfo 用户名 username 登记号码 regis num 登记时间 re
  • STM32F4应用DMA——串口收发不定长数据

    STM32F4应用DMA 串口收发不定长数据 使用STM32自带DMA传输数据 xff0c 可以减轻CPU负担 xff0c 只需设置一些参数即可发送想要发送的数据 xff0c 以下是STM32F407VE芯片测试过的部分代码 xff0c 可
  • Kotlin-----UDP客户端网络编程代码

    一 Kotlin编程简介 Kotlin可以说是Java的进阶版本 xff0c 基本上兼容了Java所有代码 xff0c 就连网络编程与Java的方式一致 xff0c 你可以看到下边是调用Java的库去完成网络编程 二 UDP客户端网络编程代
  • mime.type文件内容

    span class token macro property span class token directive hash span span class token expression This is a comment span
  • linux线程阻塞中CPU的占用率

    linux线程阻塞中CPU的占用率 一 简介 总所周知Linux系统下 xff0c 我们编写的程序进入阻塞后 xff0c 系统把任务挂起 xff0c 交给内核进行处理 xff0c 此时我们的进程CPU占用率不高 xff0c 可以说是占用率0
  • Kotlin JSON格式解析

    Kotlin JSON解析 开发环境就是下面这个 一 添加依赖 在build gradle kts文件中添加下面依赖 dependencies span class token punctuation span span class tok
  • mysql 5.7版本查询一条数据JSON字段拆分多条

    场景 xff1a 查询出来一条数据 xff0c 其中fee items字段为json数组 xff0c 现在要把json数组拆分 xff0c 如果有多条 xff0c 则展示多行数据 xff0c 列转行 表中的数据 字段 fee items 是
  • mysql 字段json行转列

    SET FOREIGN KEY CHECKS 61 0 Table structure for keyid DROP TABLE IF EXISTS 96 keyid 96 CREATE TABLE 96 keyid 96 96 id 96
  • VisualStudio2019+PyQt5

    进入VS修改 把除了默认框选之外的 34 本机开发工具 34 选上 不选的话感觉也没什么运行上的影响 但是 import sys from PyQt5 import QtWidgets 导入PyQt5部件 导入PyQt5没问题 但是却会报一
  • 【Linux】Linux文件系统管理——文件系统常用命令

    文章目录 一 df命令 du命令 fsck命令 dumpfs命令1 1 统计文件系统信息df1 2 统计目录或文件大小du1 3 df命令和du命令的区别1 3 文件系统修复明亮fsck1 4 显示磁盘状态命令dumpe2fs 二 挂载命令
  • vue3 setup lang=“ts“ defineExpose

    vue3 setup lang 61 ts defineExpose Vue 96 span class token tag span class token tag span class token punctuation lt span