vue补充继上一篇

news2024/11/19 6:26:48

 

 组合式API-reactive和ref函数

1.reactive()

作用:接受对象类型数据的参数传入并返回一个响应式的对象

1.从vue包中导入reactive函数

2.在<script setup>中执行reactive函数并传入类型为对象的初始值,并使用变量接受返回值。 

2.ref()

作用:接受简单类型或者对象类型的数据传入并返回一个响应式的对象

 1.从vue包中导入ref函数

2.在<script setup>中执行ref函数并传入初始值,使用变量接受ref函数的返回值

ref是在原有传入数据的基础上,外层包了一层对象,报成了复杂类型

底层,包成复杂类型之后,再借助reactive实现的响应式。注意点:访问数据,需要通过.value

注意点:

1.脚本中访问数据,需要通过.value

2.在template中,.value不需要加(帮我们扒了一层)

推荐:以后声明数据,统一用ref

区别:

1.reactive和ref函数的共同作用是什么?

用函数调用的方式生成响应式数据

2.reactive  和  ref?

  1. reactive不能处理简单类型的数据
  2. ref参数类型支持更好但是必须通过.value访问修改
  3. ref函数的内部实现依赖于reactive函数

3. 在实际工作中推荐使用 ref

组合式API-computed

1.计算属性中不应该有“副作用”

比如异步请求、修改dom

2.避免直接修改计算属性的值

计算属性应该是只读的,特殊情况可以配置get set

组合式API-watch

作用:侦听一个或者多个数据的变化,数据变化时执行回调函数

两个额外参数:1.immediate(立即执行)2.deep(深度侦听)

侦听单个数据

1.导入watch函数

2.执行watch函数传入要侦听的响应式数据(ref对象)和回调函数

watch(ref对象,(newValue,oldValue)=>{...})

侦听多个数据

immediate

说明:在监听器创建时立即触发回调,响应式数据变化之后继续执行回调

deep

deep深度见识,默认watch进行的是浅层监视

const ref1=ref(简单类型)可以直接监视

const ref2=ref(复杂类型)监视不到复杂类型内容数据的变化 ,必须开启deep模式

 

精确侦听某个属性

需求:在不开启deep的情况下,侦听age变化,只有age变化时才执行回调

 

 生命周期API(选项式vs组合式)

 onMounted可以调用多次,并不会冲突,而是按照顺序依次执行。

组合式API-父子通信

基本思想

1.父组件中给子组件绑定属性

2.子组件内部通过props选项接受

 

defineProps原理:就是编译阶段的一个标识,实际编译器解析时,遇到后会进行编译转换。

 组合式API-子传父

基本思想:

1.父组件中给子组件标签通过@绑定事件

2.子组件内部通过emit方法触发事件

 

组合式API-模版引用(Dom)

通过ref标识获取真是的dom对象或者组件实例对象 

 1.调用ref函数生成一个ref对象

2.通过ref标识绑定ref对象到标签

3.通过ref.value获得绑定的dom

(拿到组件是为了拿到里面的属性和方法!)

defineExpose()

默认情况下在<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的,可以通过defineExpose编译宏指定那些属相和方法允许访问。

 总结

组合式API-provide和inject

作用和场景

顶层组件向任意的底层组件传递数据和方法,实现夸层组件通信 

夸层传递普通数据

1.顶层组件通过provide函数提供数据

2.底层组件通过inject函数获取数据

 子孙修改爷爷中的数据:可以给子孙传递一个修改该数据的方法

Vue3.3新特性-defineOptions

因为setup的引入无法使用name,emits等选项, 所以在Vue3.3中新引入了definOptions宏。顾名思义,主要是用来定义OPtions API的选项。可以用 defineOptions定义任意的选项,props,emits,expose,stots除外(因为这些可以使用definexxx来做到)

Vue3.3新特新-defineModel

在 Vue3中,自定义组件上使用v-model,相当于传递一个modelValue属性,同时触发vpdate:modelValue事件

 

Pinia快速入门

什么是P inia

Pinia是Vue的最新状态管理工具,是Vuex的替代品

1.提供更加简单的API(去掉了mutation)

2.提供符合,组合式风格的API(和vue3新语法统一)

3.去掉了modules的概念,每一个store都是一个独立的模块

4.配合TypeScript更加友好,提供可靠的类型推断

手动添加Pinia到Vue项目

在实际开发项目的时候,关于PInia的配置,可以在项目创建时自动添加

现在我们初次学习,从零开始:

1.使用VIte创建一个空的Vue3项目

npm create vue@latest

2.按照官方文档安装PInia到项目中

具体步骤请参考官网!

import { defineStore } from 'pinia'

// 你可以对 `defineStore()` 的返回值进行任意命名,但最好使用 store 的名字,同时以 `use` 开头且以 `Store` 结尾。(比如 `useUserStore`,`useCartStore`,`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
export const useAlertsStore = defineStore('alerts', {
  // 其他配置...
})

<script setup>

import { useCounterStore } from "@/store/counter.js";
const counterStore = useCounterStore();
console.log(counterStore);
</script>

<template>
  <main>
    <h1>根组件{{ counterStore.count }}-{{ counterStore.msg }}</h1>
  </main>
</template>

<style scoped></style>

计算属性

import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
//定义store
export const useCounterStore = defineStore('counter', () => {
    const count = ref(100)
    const msg = ref('hello pinia')
        //声明操作数据的方法action
    const addCount = () => {
            count.value++
        }
        //声明基于数据派生的计算属性getters
    const double = computed(() => count.value * 2)
    return {
        count,
        msg,
        addCount,
        double
    }
})

action异步实现

 不能解构store

 Pinia持久化插件

总结:

1.Pinia是用来干什么的?

新一代的状态管理工具,替代Vuex

2.pinia中还需要mutation吗?

不需要,action即支持同步也支持异步

3.Pinia如何实现getter?

computed计算属性函数

4.Pinia产生的store如何解构赋值数据保持响应式?

storeToRefs

5.Pinia如何快速实现持久化?

pinia-plugin-persistedstate

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

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

相关文章

如何做好一个管理者

一、管理的目标 管理的目的是效率和效益。管理的核心是人。管理的本质是协调&#xff0c;协调的中心是人。管理的真谛是聚合企业的各类资源&#xff0c;充分运用管理的功能&#xff0c;以最优的投入获得最佳的回报&#xff0c;以实现企业既定目标。 二、管理中的核心 2.1、核…

前馈型BP神经网络

1.感知机和激活函数 感知机&#xff0c;是构成神经网络的基本单位&#xff0c;一个感知机可以接收n个输入X&#xff08;x1,x2,x3…xn)T&#xff08;每个输入&#xff0c;可以理解为一种特征&#xff09;,n个输入对应n个权值W&#xff08;w1,w2,w3…wn),此外还有一个偏置项b&am…

AI换脸之Faceswap技术原理与实践

目录 1.方法介绍 2.相关资料 3.实践记录 ​4.实验结果 1.方法介绍 Faceswap利用深度学习算法和人脸识别技术&#xff0c;可以将一个人的面部表情、眼睛、嘴巴等特征从一张照片或视频中提取出来&#xff0c;并将其与另一个人的面部特征进行匹配。主要应用在图像/视频换脸&am…

GMM模型与EM算法

GMM模型与EM算法 --> 聚类 -> 无监督机器学习[参考] 一、单个高斯分布GM的估计参数 1.1 高斯分布 结果趋近于正态分布 每次弹珠往下走的时候&#xff0c;碰到钉子会随机往左还是往右走&#xff0c;可以观测到多次随机过程结合的 高斯分布的似然函数 X1-XN 全部发生的…

【2023】redis-stream配合spring的data-redis详细使用(包括广播和组接收)

目录 一、简介1、介绍2、对比 二、整合spring的data-redis实现1、使用依赖2、配置类2.1、配置RedisTemplate bean2.2、异常类 3、实体类3.1、User3.2、Book 4、发送消息4.1、RedisStreamUtil工具类4.2、通过延时队列线程池模拟发送消息4.3、通过http主动发送消息 5、&#x1f3…

电动力学专题研讨:运动电荷之间的相互作用是否满足牛顿第三定律?

电动力学专题研讨&#xff1a;运动电荷之间的相互作用是否满足牛顿第三定律&#xff1f;​​​​​​​ 两个稳恒电流元之间的相互作用不一定服从牛顿第三定律常见的解释是&#xff1a;稳恒电流元是不能孤立存在的&#xff0c;因此不能得出结论 符号约定 两个运动点电荷之间的力…

for循环遍历的`form表单组件`rules规则校验失效问题——下拉框选择之后还是报红---亲测有效

问题: 大概的效果就是这种, for循环选择之后还是还是报红 看文章之前 : 先检查 model rules pops 有没有判定好 解决: 参考了他的 for循环遍历的form表单组件rules规则校验失效问题——输入内容后依然提示必填&#xff0c;亲测有效——基础积累_a-form-model的validat…

java项目之学生综合考评管理系统()

项目简介 学生综合考评管理系统实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、通知公告管理、班级管理、学生管理、教师管理&#xff0c;课程信息管理、作业布置管理、作业提交管理、留言信息管理、课程成绩管理。学生&#xff1a;个人中心、通知公告管理、教师管…

Python赋值运算符:= 等号 以及 复合赋值运算符 += -= *=

赋值运算符 运算符描述实例赋值**将右侧的结果赋值给等号左侧的变量 案例1&#xff1a;把某个值赋值给某个变量 num 10 案例2&#xff1a;多个变量同时进行赋值操作 n 5 f 10.88 s ‘hello world’ 简写为&#xff1a;----------就类似一对一的&#xff0c;一个序号对应…

推荐一个备受好评的电子期刊制作网站

在当今数字化的时代&#xff0c;电子期刊制作已成为许多企业和个人的必备技能。对于想要制作出高质量、专业的电子期刊的人来说&#xff0c;选择一个简单易用、功能强大的网站至关重要。 下面分享一款备受好评的电子期刊制作网站-----FLBOOK在线制作电子杂志平台&#xff0c;在…

【frp实现内网穿透踩坑到成功篇】

【frp实现内网穿透踩坑到成功篇】 背景&需求配置服务器端配置客户端总结 背景&需求 白嫖了一个tencent入门级服务器 ∗ 1 *1 ∗1&#xff0c;学校实验室内网服务器 ∗ 1 *1 ∗1&#xff0c;需要访问内网的服务器。一顿搜寻资料后确定大致的路子&#xff1a; 第一步是…

因为写保护,U盘会“假死”。如何在Windows 10上删除写保护

本文介绍如何从USB驱动器、SD卡或单个文件中删除写保护。说明适用于Windows 10、Windows 8和Windows 7。 如何使用锁定开关解除写保护 如果你的计算机告诉你介质受写保护&#xff0c;请在USB或SD卡上查找写保护开关&#xff08;也称为锁定开关&#xff09;。如果介质有此开关…

文心一言 VS 讯飞星火 VS chatgpt (113)-- 算法导论10.2 5题

五、用go语言&#xff0c;使用单向循环链表实现字典操作 INSERT、DELETE 和 SEARCH&#xff0c;并给出所写过程的运行时间。 文心一言&#xff1a; 在Go语言中&#xff0c;我们首先需要定义一个Node结构体来表示单向循环链表的节点&#xff0c;然后再定义一个LinkedList结构体…

大数据Doris(十一):添加FS_BROKER步骤

文章目录 添加FS_BROKER步骤 一、 ​​​​​​​配置broker节点

笔试面试相关记录(10)

&#xff08;1&#xff09;马走棋盘&#xff0c;只能走‘日’字形&#xff0c;起点在&#xff08;0,0&#xff09;&#xff0c;给定一个点[x,y](-300<x,y<300)&#xff0c;问最少多少步可以到达&#xff1f; 输入&#xff1a;2,1 输出&#xff1a;1 这个题目通过了91.7…

深入理解RNN

[人工智能-深度学习-47]&#xff1a;卷积神经网CNN循环神经网络RNN与组合电路时序电路的比较 [人工智能-深度学习-51]&#xff1a;循环神经网络 - RNN基本原理详解 组合逻辑电路 组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入&#xff0c;与电路原来…

IOday6

主线程和分支线程都可以访问&#xff0c;虚拟地址和物理地址都相同 分支线程不可以访问&#xff0c;使用pthread_create函数的第四个参数传址 不能访问,传递地址过去

大模型分布式训练并行技术(六)-多维混合并行

近年来&#xff0c;随着Transformer、MOE架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此&#xff0c;我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&am…

python练习:赋值运算 => 输入身高,体重,求BMI = 体重(kg)/身高(m)的平方。

赋值运算 > 输入身高&#xff0c;体重&#xff0c;求BMI 体重(kg)/身高(m)的平方。 代码&#xff1a; height float(input(‘请输入您的身高&#xff08;m&#xff09;&#xff1a;’)) weight float(input(‘请输入您的体重&#xff08;kg&#xff09;&#xff1a;’))…