青岛做网站电话/91关键词排名

青岛做网站电话,91关键词排名,忻州网站制作,广汉网站建设ghxhwl目录 1,前言2,解决2.1,利用插件,实现编译时转换2.2,toRef 和 toRefs 1,前言 Vue3 中为了保持响应性,始终需要以 props.x 的方式访问这些 prop。这意味着不能够解构 defineProps 的返回值&#…

目录

  • 1,前言
  • 2,解决
    • 2.1,利用插件,实现编译时转换
    • 2.2,toRef 和 toRefs

1,前言

Vue3 中为了保持响应性,始终需要以 props.x 的方式访问这些 prop。这意味着不能够解构 defineProps 的返回值,因为得到的变量将不是响应式的、也不会更新。

以下面的父子组件为例:

父组件

<template><Children :count="count" />
</template><script setup>
import { ref, reactive } from "vue";
import Children from "./components/Children.vue";
const count = ref(0);
</script>

子组件

<template><div>{{ count }}</div>
</template><script setup>
const props = defineProps({count: Number,
});let { count } = props;
count++;
console.log(props.count); // 0,并不会发生变化 
</script>

2,解决

2.1,利用插件,实现编译时转换

原本 Vue3 是支持的 reactivity-transform,后来废弃了。但是可以通过 Vue Macros 插件 来实现,用法如下:

1,安装插件,并在 vite 中配置。

npm i -D @vue-macros/reactivity-transform
// vite.config.js
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'export default defineConfig({plugins: [ReactivityTransform()],
})

2,会在组件中自动生效。

<template><div>{{ msg }}</div><div>{{ count }}</div>
</template><script setup>
import { watchEffect } from "vue";
const { msg, count } = defineProps({msg: String,count: Number,
});watchEffect(() => {// 会在 props 变化时打印console.log(msg, count);
});
</script>

3,原理

先通过 vite-plugin-inspect 插件 来查看插件的中间状态。

npm i -D vite-plugin-inspect

完整配置

// vite.config.js
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import ReactivityTransform from "@vue-macros/reactivity-transform/vite";
import Inspect from "vite-plugin-inspect";export default defineConfig({plugins: [vue(), ReactivityTransform(), Inspect()],
});

本地启动后,访问 http://localhost:5173/__inspect/ 可检查项目的模块和栈信息。

在这里插入图片描述

可以看到是做了转换,通过 __props 来访问自然是响应式的。

watchEffect(() => {console.log(msg, count);
});
watchEffect(() => {console.log(__props.msg, __props.count);
});

问题来了,这个 __props 是什么?

我们再看下 @vitejs/plugin-vue 这个插件的做了什么:会发现编译单文件组件后,setup 变为函数,其中一个参数就是 __props ,也就是传入的 props。

在这里插入图片描述

所以,我们在 vue 单文件中,也可以直接使用 __props 并不会报错。

2.2,toRef 和 toRefs

toRef,基于响应式对象上的一个属性,创建一个对应的 ref,这个 ref 与其源属性保持同步:改变源属性的值将更新 ref 的值。

toRefs,将一个响应式对象转换为一个普通对象,这个普通对象的每个属性都是指向源对象相应属性的 ref。每个单独的 ref 都是使用 toRef() 创建的。

所以,可以这样做:

<template><div>{{ _msg }}</div><div>{{ msg }}</div><div>{{ count }}</div>
</template><script setup>
import { toRef, toRefs } from "vue";
const props = defineProps({msg: String,count: Number,
});// _msg 也是响应式的,会随着 props.msg 改变。
const _msg = toRef(props, "msg");// msg, count也是响应式的,会随着 props 改变。
const { msg, count } = toRefs(props);
</script>

以上。

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

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

相关文章

Navicat 技术指引 | 适用于 GaussDB 的数据迁移工具

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

Cesium 展示——地球以及渲染数据导出(下载)为图片或 pdf

文章目录 需求分析新加需求分析第一种方式第二种方式需求 将 Cesium 球体以及渲染数据导出为 jpg/png/pdf 分析 获取场景 scene 信息,转为image 的 octet-stream 流 进行下载为图片 /*** @todo canvas 导出图片* @param {string} dataurl - 地址* @return {Blob}*/ functio…

设备健康管理平台助力锂电企业实现可持续发展

随着锂电池产业的快速发展&#xff0c;设备的稳定运行和精准维护对于锂电企业来说至关重要。传统的设备维护方式在效率和全面性方面存在局限&#xff0c;无法满足锂电行业对设备管理的需求。然而&#xff0c;通过设备健康管理平台的引入&#xff0c;锂电企业现在可以充分发挥其…

【LeetCode:1410. HTML 实体解析器 | 模拟+哈希表+字符串+库函数】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

本篇文章中&#xff0c;我们将讲述在C语言中&#xff0c;输入一个数组&#xff0c;如何用for循环实现将输入的n个数字按照从大到小输出。 一.定义数组并初始化 首先&#xff0c;我们定义一个整形的数组并将其初始化。输入n&#xff0c;来决定数组中整数的个数。 然后用for循…

通过HTML网页对mysql数据库进行增删改查(CRUD实例)

首先我们得了解一下大致的架构 ,如下: 我们采用自底向上的方式进行开发, 一、先写mysql数据库 二、再写java后端(Spring MVC架构)(这个是什么东西不懂不要紧,跟着步骤做就行了) 三、最后写前端页面(HTML) 一、 Mysql数据库部分 我们要通过网页对数据库进行开发&#xff0c;…

解决:Gitee + PicGo配置图床失败

解决&#xff1a;Gitee PicGo配置图床失败 PicGo安装插件的时候选择&#xff1a;gitee-uploader&#xff0c;不要选择gitee&#xff01; 在Gitee新建的图床仓库中设置一个images文件夹&#xff0c;用来保存上传的图片&#xff0c;但是要注意在PicGo中的path中要写上路径/img…

数据库基础入门 — SQL运算符

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

linux的基础命令

文章目录 linux的基础命令一、linux的目录结构&#xff08;一&#xff09;Linux路径的描述方式 二、Linux命令入门&#xff08;一&#xff09;Linux命令基础格式 三、ls命令&#xff08;一&#xff09;HOME目录和工作目录&#xff08;二&#xff09;ls命令的参数1.ls命令的-a选…

基于yolov2深度学习网络的喝水行为检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、YOLOv2网络原理 4.2、基于YOLOv2的喝水行为检测 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off;…

PPT思维导图怎么做?这2个思维导图工具墙裂推荐!

在日常学习和工作中&#xff0c;我们常常会面临需要处理大量信息的情况&#xff0c;这时候&#xff0c;一种叫做思维导图的工具可能会成为你的救星。 不同于传统的线性记录方式&#xff0c;思维导图以其独特的视觉表现力和结构化的信息处理方式&#xff0c;使得人们能够更加有…

Flutter学习(四)如何取消listview的越界效果

背景 在flutter的开发过程中&#xff0c;ListView是很常见的一个组件&#xff0c;但是&#xff0c;由于ListView的某些自带的体验&#xff0c;导致不太好的用户体验。例如ListView中&#xff0c;滑动到顶部或者底部的时候&#xff0c;再次滑动&#xff0c;会有越界的效果&…

2023年亚太地区数学建模大赛 问题A

采果机器人的图像识别技术 中国是世界上最大的苹果生产国&#xff0c;年产量约为3500万吨。与此同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;全球每两个苹果中就有一个&#xff0c;全球超过六分之一的苹果出口自中国。中国提出了一带一路倡议&#xff08;BRI&…

Cache学习(2):Cache结构 命中与缺失 多级Cache结构 直接映射缓存

1 Cache名词解释 命中&#xff08;hit&#xff09;&#xff1a; CPU要访问的数据在Cache中有缓存缺失&#xff08;miss&#xff09;&#xff1a; CPU要访问的数据在Cache中没有缓存Cache Size&#xff1a;Cache的大小&#xff0c;代表Cache可以缓存最大数据的大小Cache Line&a…

快速在WIN11中本地部署chatGLM3

具体请看智谱仓库github&#xff1a;GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 开源双语对话语言模型 或者Huggingface:https://huggingface.co/THUDM/chatglm3-6b 1. 利用Anaconda建立一个虚拟环境&#xff1a; conda create -n chatglm3 pyt…

java--static的应用知识:单例设计模式

1.什么是设计模式(Design pattern) ①一个问题通常有n中解法&#xff0c;其中肯定有一种解法最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 ②设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 2.单例设计模式 确保一个类只…

mac mysql连接中断重新启动办法

遇到如图所示问题&#xff0c;可以用下面的命令重启mysql服务 sudo /usr/local/mysql/support-files/mysql.server start

Vector - CANoe - Vector Hardware Manager以太网

前面的文章中有介绍过基于Network based mode和channel base mode的环境配置&#xff0c;不过我们都是使用比较旧的办法&#xff0c;在我使用了一段时间Vector Hardware Manager配置之后发现这个更加好用结合之前的配置方法&#xff0c;使用起来也更加的灵活&#xff0c;今天就…

HTML的学习

知己知彼百战不殆 打算学习一下javascript 所以先从基础的html语言开始 其实就是头部 和身体 头部控制整个 html的语言 title等 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…

61 权限提升-RedisPostgre令牌窃取进程注入

目录 演示案例:Redis数据库权限提升-计划任务PostgreSQL数据库权限提升Windows2008&7令牌窃取提升-本地Windows2003&10进程注入提升-本地pinjector进程注入工具针对-win2008以前操作系统pexec64 32进程注入工具针对-win2008及后操作系统- (佛系) 涉及资源: postgersql是…