vue3相关

vue3官方文档:Vue3

vue3创建应用实例

creatApp(根组件)

vue3挂载全局组件、router、store

use()

简介OptionsAPI与CompositionAPI的区别

1、OptionsAPI数据、方法、计算属性等,是分散在data、methods、computed中的,若想新增或者修改一个需求,就需要分别修改data、methods、computed,不利于项目维护

2、CompositionAPI可以使用函数的方法,更加优雅的组织代码,让相关功能的代码更加有序的组合在一起

setup概述

setup是vue3中新增的配置项,值是一个函数,组件中所有用到的组合式api全都配置在setup中

setup特点

1、setup返回的对象中的内容,可以直接在模板中使用

2、setup中访问this是undefined

3、setup函数会在beforeCreated钩子前执行

setup语法糖:在script标签中直接把setup写在标签即可

setup和optionAPI

1、setup和optionAPI是可以共存的,也就是说,在setup中可以使用this获取到data或者methods等

2、选项式API可以读取setup中的数据,setup不可以读取选项式中的数据

创建响应式数据的方法

ref、reactive

ref()

1、可以定义基本类型和引用类型的数据

2、ref创建的变量必须使用.value获取

reactive()

1、可以定义引用类型的数据

2、reactive重新分配一个对象会失去响应式

toRef(obj)、toRefs(obj,key)

作用:将一个响应式对象中的每一个属性,都转化为ref对象

区别:toRef(obj)和toRefs(obj,key)功能一样,但是toRefs(obj,key)是批量转换

计算属性computed

使用:首先在vue中先引入computed

使用方法有两种,一是接收一个函数,另外一个是接收一个对象

// 第一种方法 
// 只读
const val = compouted(() => {return a+b
})// 第二种方法
// 可读可写
const val = compouted({get: () => {},set: (valure) => {// valure是val的最新值}
})

监听属性watch

使用:首先在vue中先引入watch

作用:监视数据的变化

特点:vue3中的watch只能监视以下四种数据

1、ref定义的数据

2、reactive定义的数据

3、函数返回的数据

4、包含以上数据的数组

watch接收三个参数

参数1:需要监听的数据

参数2:处理函数

参数3:配置一个对象,是否开启深度监听或者是否是否立即监听

监视ref定义的基本数据类型

const a = ref(100)
watch(a, (new, old) => {})

监视ref定义的引用类型的数据

1、如果修改的是对象中的数据,拿到的old和new是一个对象

2、如果给ref对象重新赋值,new是新值,old是旧值

const a = ref({name: '小刘',age: 18
})// 监听整个对象
// 需要开启深度监听
watch(a, (new, old) => {
}, {deep: true
})// 监听某个属性
watch(() => a.value.name, (new,old)=>{})

监视reactive定义的对象类型

1、reactive定义的数据不能给它重新赋上新值,可以使用assign

const a = reactive({name: '小刘',age: 18
})// 监听整个对象
// 默认开启深度监听
watch(a, (new, old) => {
}, {deep: true
})// 监听某个属性
watch(() => a.name, (new,old)=>{})

watchEffect

定义:立即运行一个函数,同时响应式的追踪其依赖,并在依赖更新时重新执行该函数

watch对比watchEffect

1、都能监听响应式数据

2、watch需要加上需要监听的数据

3、watchEffect不需要,vue3自动收集其依赖项

watchEffect(() => {})

标签的ref属性

作用:用于注册模板引用

1、用在普通标签上,获取的是DOM节点

2、用在组件上,获取的是组件实例对象

<div>111111</div>const domRef = ref()console.log(domRef.value)

props的使用

接收props

1、defaultProps([]),接收一个数组,返回值可以访问到接收到的props

2、限制类型,可以使用泛型defaultProps<{}>([])

3、设置props默认值使用,withDefaults(参数一是defaultProps,参数2是个对象定义默认值)

生命周期

1、和vue2的生命周期类似,在原来的生命周期钩子函数上加上on

2、去掉了初始化的两个钩子,有关代码可在setup中写

路由

声明式路由

// 路由跳转
<router-link></router-link>// to 需要跳转的路由
1、若to是字符串,可以带search参数
2、若to是对象
{path: 路由地址}
{name: 路由的命名空间}
// 若是传参数
// params参数
{path: 路由地址,params: {}
}// query参数
{path: 路由地址,query: {}
}// 组件展示
<routerView></routerView>

命名路由

编程式路由

1、引入路由相关函数

2、在app上注册路由

import {createRouter,createWebHistory} from 'vue-router'const routes = createRouter({history: createWebHistory(),list: [{path: '/z',component: ,// 子级路由children: [{// 路由地址,不需要加斜杠path: 'a'}]}]
})const app = creatAPP()
app.use(routes)

路由传参

query参数:在路由后面加问号进行拼接

param参数:需要先在路由列表中注册,然后在跳转时通过斜杠跟上参数

路由参数获取

通过useRoute(),需要从vue-router中导入

pinia

组件通信

第一种:props+emit

接收emit: defineEmits(),接收一个数组,有返回值,返回值是emit,可以触发自定义事件

// 接收
const emit = defineEmits(['haha'])// 触发
emit('haha')

第二种:v-model

如果作用在组件上

<com v-model='data'></com>// 相当于
<com :modelValue="data" @update:modelValue></com>// 所以如果使用v-model需要在子组件中接收props和事件
defineProps(['modelValue'])
defineEmites(['update:modelValue'])

第三种:$attrs

第四种:$refs和$parent

第五种:provide/inject

第六种:mitt

插槽

匿名插槽

具名插槽

作用域插槽

内置组件

Suspense

Teleport

自定义hook

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

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

相关文章

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…

前后端依赖下载上传

在某些情况下&#xff0c;可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖&#xff0c;你可以将它们保存在本地&#xff0c;然后在没有网络连接时使用&#xff0c;提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

SpringBoot整合rabbitmq-扇形交换机队列(三)

说明&#xff1a;本文章主要是Fanout 扇形交换机的使用&#xff0c;它路由键的概念&#xff0c;绑定了页无用&#xff0c;这个交换机在接收到消息后&#xff0c;会直接转发到绑定到它上面的所有队列。 大白话&#xff1a;广播模式&#xff0c;交换机会把消息发给绑定它的所有队…

异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)

目录 TCP超时重传拥塞控制概述慢启动和拥塞避免下面讲解发送端如何判断拥塞发生。 快速重传和快速恢复 本文描述TCP在异常网络下的处理方式 以保证其可靠的数据传输的服务 TCP超时重传 tcp服务能够重传其超时时间内没有收到确认的TCP报文段&#xff0c;tcp模块为每一个报文段都…

代码随想录算法训练营day60 || 647.回文子串,516. 最长回文子序列

动态规划&#xff0c;字符串性质决定了DP数组的定义 | LeetCode&#xff1a;647.回文子串_哔哩哔哩_bilibili 动态规划再显神通&#xff0c;LeetCode&#xff1a;516.最长回文子序列_哔哩哔哩_bilibili 647.回文子串 // 时间复杂度O(n^2) // 空间复杂度O(n^2) class Solution …

看到极氪001这价格这配置,小米SU7我不等了

文 | AUTO芯球 作者 | 李诞 新款升级1100多项&#xff0c;还是原来老款的价格&#xff0c;新款极氪001你这样子卷&#xff0c;友商没法玩啊。 我惊呆了朋友们 不是极氪001一发布 第二天苹果就宣布造车失败 而是极氪001一直是30万以上中国品牌纯电轿车/SUV、高端猎装车销量…

MySQL 5.7.31详细下载安装配置

1、下载步骤 下载完毕后将文件解压到你想保存到的盘和目录内。我是将文件解压到D:\Mysql目录下面 2.配置环境变量 1.系统—>高级系统设置—>环境变量—>系统变量 在系统变量中点击新建&#xff0c;变量名为量名为&#xff1a;MYSQL_HOME&#xff0c;添加你的mysql…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换&#xff08;Image-to-Image Translation&#xff09;模型——Palette&#xff0c;可用于图像着色&#xff0c;图像修复&#xff0c;图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

将编译好的FFmpeg导入iOS项目使用(swift)

1. 将ffmpeg 拖入工程并添加search Paths路径 2.添加所需的framework和lib AudioToolbox.framework&#xff0c;CoreMedia.framework&#xff0c;libbz2&#xff0c;libbz&#xff0c;libiconv&#xff0c;VideoToolbox.framework 3.使用 在桥接header中引入头文件

vue中$nextTick的使用

在Vue.js中&#xff0c;$nextTick是一个用于延迟执行一段代码的实例方法。它的作用是在DOM更新后立即执行回调函数&#xff0c;确保在DOM更新完成后再进行操作。以下是其具体用法&#xff1a; 使用场景&#xff1a;当需要在数据变化后立即对DOM进行操作时&#xff0c;可以使用…

MySql出现无法正常启动(0x000007b)的快速解决

目录 1.背景介绍 2.解决方案 1.背景介绍 昨天在清理电脑内存空间的时候&#xff0c;不小心将一些重要的系统组件删除&#xff0c;导致无法正常启动mysql&#xff0c;一开始是提示经过msvcp120.dll&#xff0c;于是找到下载dll的网站将组件补充进system&#xff0c;但随后又提…

nodejs配置环境变量后不生效(‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件)

一、在我们安装Node.js后&#xff0c;有时候会遇到node命令不管用的情况&#xff0c;关键是在安装时候已经添加配置了环境变量&#xff0c;向下面这样 但是还是不管用&#xff0c;这是因为环境变量配置不正确&#xff0c;权重不够&#xff0c;或者是命令冲突导致&#xff0c;解…

leetcode:135.分发糖果

解题思路&#xff1a;分发糖果时&#xff0c;既要考虑左面&#xff0c;又要考虑右面&#xff0c;如果同时考虑&#xff0c;就会顾此失彼&#xff0c;所以我们可以先考虑右边&#xff0c;再考虑左边&#xff0c;分别正序、逆序进行遍历。逆序遍历时相当于重置candy数组。 运用贪…

FreeRTOS 其它知识点

目录 一、低功耗Tickless模式 1、低功耗Tickless模式的引入 2、Tickless 具体实现 二、空闲任务 1、空闲任务相关知识点 2、钩子函数 3、空闲任务钩子函数 三、使用RTOS的好处 一、低功耗Tickless模式 1、低功耗Tickless模式的引入 FreeRTOS 的系统时钟是由滴答定时器中…

机器人内部传感器阅读梳理及心得-速度传感器-数字式速度传感器

在机器人控制系统中&#xff0c;增量式编码器既可以作为位置传感器测量关节相对位置&#xff0c;又可作为速度传感器测量关节速度。当作为速度传感器时&#xff0c;既可以在模拟量方式下使用&#xff0c;又可以在数字量方式下使用。 模拟式方法 在这种方式下&#xff0c;需要…

5 分钟配置好 Electron 应用的图标

最近在开发博客本地客户端 HexoPress&#xff0c;应用做好后&#xff0c;需要打包&#xff0c;如果不希望打包出来 App 的图标用的是 Electron 默认的星球环绕的图标&#xff0c;那么需要自己制作图标。 制作图标 首先&#xff0c;你需要给各种操作系统制作一个满足要求的图标…

会声会影2024出来了吗?

近年来&#xff0c;随着人们对于娱乐和创意的需求不断增长&#xff0c;视频编辑软件也越来越受到大众的关注。其中&#xff0c;会声会影是一款备受欢迎的视频编辑软件&#xff0c;许多用户都在关注其新版本——会声会影2024。 然而&#xff0c;目前并没有官方宣布会声会影2024的…

虚拟机 VMware 安装 WindowsXP 系统(基于 iso 光盘镜像)

下载好对应的 iso 文件 依次点击文件 -> 新建虚拟机 选择自定义&#xff0c;然后下一步 默认 浏览选中我们刚才下载好的xp系统光盘镜像 iso 文件 下一步 不用输密钥&#xff0c;直接下一步 浏览选择存放虚拟机的位置 下一步 没必要多分处理器内核给它&#xff0c;默认一…

Makefile中如何使用echo输出$符号

赶在月底发一篇&#xff0c;因为大佬讲了&#xff0c;普通人要想有所作为&#xff08;咱不说是逆袭&#xff0c;因为这个标题立的有点大了&#xff09;&#xff0c;就得持续输出&#xff0c;因为不是说你学习了就成为自己的了&#xff0c;是否内化于心&#xff0c;也就是消化吸…

每日五道java面试题之spring篇(十)

目录&#xff1a; 第一题 Spring在运行时通知对象第二题 在Spring AOP 中&#xff0c;关注点和横切关注的区别是什么&#xff1f;在spring aop 中 concern 和 cross-cutting concern 的不同之处&#xff1f;第三题 Spring通知有哪些类型&#xff1f;第四题 什么是切面 Aspect&a…