vue3学习day04-provide和inject、defineOptions、defineModel、Pinia、pinia持久化

15、provide和inject

(1)作用:顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信

(2)语法:

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

(3)示例1:

初始:

1)在父组件内

①导入provide

②提供传递的数据(provide(属性名,属性名对应的内容))

2)在孙组件内

①导入inject

②接收

3)渲染

4)效果:

(4)示例2(修改数据)

已知:

 

1)在父组件内提供修改方法

2)孙组件接收

3)孙组件使用

4)效果

16、 defineOptions

(1)作用:定义任意选项(props、emits、expose、slots除外),解决<script setup>占  满script标签,无法添加与setup平级的属性。

(2)语法:

已知在views文件夹下的login中有一index.vue文件

命名时出现两个script,无法新增name属性

解决(defineOptions({})):

17、defineModel

(1)作用:简化代码(vue3支持v-model,但是v-model相当于传递一个modelValue属性,并触发update-modelValue事件,代码繁冗)

(2)语法

已知(父组件绑定了一个数据):

1)导入defineModel

2)声明

3)在vite.config.js中配置

4)使用

5)效果:

18、Pinia

(1)概念:vue的状态管理工具,vuex的替代品

(2)优点:

        1)提供更加简单的API(去掉了mutations)
(由state、mutations、actions、getters、modules——>state、actions、getters)
        2)提供符合组合式风格的API
        3)去掉了modules概念,每一个仓库(store)都是一个独立的模块
        4)对TypeScript更加友好,提供可靠的类型推断。

(3)语法

        1)创建一个空的vue3项目(npm create vue@latest)

执行以下命令,启动项目

        2)通过VsCode打开项目,清除不必要文件(components、assets)和数据(App.vue和main.js中)

        3)准备组件使组件呈现以下效果

4)配置pinia
        ①找到官方文档(https://cn.vuejs.org/),点击开始使用,找到“安装”,点击“开始”

        

        ②安装pinia(yarn add pinia或npm install pinia)

        ③在main.js中,导入、创建、挂载

        ④重启项目,不报错即可

        5)pinia使用
                ①创建仓库

        创建仓库——导入

        创建仓库——定义仓库

        

        创建仓库——提供数据

        

        创建仓库——返回

        

创建仓库——导出

        

②使用

③效果

(4)处理安装报错

1) 尝试调用 import_node_util.parseArgs 这个函数时出现了问题,因为 parseArgs 并不是一个有效的函数或者没有被正确地导出。问题原因(依赖问题、导入错误、构建问题

我的这里是亿依赖问题,node版本不匹配(现在使用的是node的16.8.0)

解决步骤:
①查看node版本

②使用nvm查看现在有几个node版本

③切换版本

④再次查看node版本

(5)pinia的属性

        1)getters(通过computed实现)
                ①使用(在创建仓库的js文件中新提供一个借助computed实现的函数,通过变量接收)

                ②导入、接收、调用

                ③效果

        

2)actions异步
①自定义一个接口并启动接口,接口内容如下

②安装axios

③新建仓库,进行异步请求,提供数据

④使用

⑤效果

3)storeToRefs
①作用:解决解构仓库得到的数据由响应式变为非响应式的问题,即解构数据时需要加storeToRefs,解构方法不需要加storeToRefs

 

②语法示例:

已知:

使用:

效果:

19、pinia持久化

(1)安装pinia持久化插件

①打开官网(https://prazdevs.github.io/pinia-plugin-persistedstate/zh/),点击“开始使用”

②在vscode的package查看pinia版本,确定版本高于pinia^2.0.0

③安装依赖(npm i pinia-plugin-persistedstate)

④将插件安装到pinia实例上(在main.js)

⑤使用(创建 Store 时,将 persist 选项设置为 true)(在第三个参数的位置)

⑥效果(增加后,刷新,数值不变)(若未实现,可以试试重启)

在本地存储,可看到

(2)插件内部的修改

1)在本地存储的id名

(在需要修改id,避免id重复的地方使用persist修改)

2)paths(用于指定 state 中哪些数据需要被持久化。[] 表示不持久化任何状态,undefined 或 null 表示持久化整个 state)

在原js文件,新增一个msg,发现它也会持久化

指定num才可持久化:

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

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

相关文章

AR眼镜:重型机械维修保养新利器

重型机械作为工业与建设领域的重要支柱&#xff0c;其稳定运行直接影响效率与成本。然而在偏远地区&#xff0c;面临复杂故障和高昂维修成本&#xff0c;传统维修方式常显得力不从心。如今&#xff0c;安宝特的AR远程协助解决方案结合Vuzix AR眼镜&#xff0c;正悄然改变这一现…

常见八股面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?

大家好&#xff0c;我是鸭鸭&#xff01; 此答案节选自鸭鸭最近弄的面试刷题神器面试鸭&#xff0c;更多大厂常问面试题&#xff0c;可以点击进行阅读哈&#xff01; 目前这个面试刷题神器刚出&#xff0c;有网页和小程序双端可以阅读&#xff01; 回归面试题&#xff01; …

【每日刷题】Day96

【每日刷题】Day96 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. LCP 44. 开幕式焰火 - 力扣&#xff08;LeetCode&#xff09; 2. 1022. 从根到叶的二进制数之和 - …

栈和队列(数据结构)

1. 栈(Stack) 1.1 概念 栈 &#xff1a;一种特殊的线性表&#xff0c;其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO &#xff08; Last In First Out &#xff09;的原…

Pytorch-张量的创建

&#x1f308;个人主页&#xff1a; 羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 简介&#xff1a; 一个Python深度学习框架&#xff0c;它将数据封装成张量&#xff08;Tensor&#xff09;进行处理&#xff0c;Python中的张量就是元素为同一种数据类型的多维…

算法训练,项目

一.木材加工 题解&#xff1a; 二分答案&#xff0c;左边0&#xff0c;右边可以为最长的木头&#xff0c;但我直接赋值了一个很大的值&#xff0c;进行二分&#xff0c;随后写个check;内部遍历木头截取为mid木块的个数&#xff0c;要是>k&#xff0c;满足要求&#xff0c;还…

开源免费的海报设计器vue-fabric-editor

vue-fabric-editor 是一个基于 Vue.js 和 Fabric.js 的创新前端富文本编辑器&#xff0c;它将传统的文本输入体验与图形设计元素相结合&#xff0c;为用户提供了全新的内容创作方式。 以下是关于 vue-fabric-editor 的详细介绍&#xff1a; 一、技术特点 框架结合&#xff1a;…

快速掌握Vue:基础命令详解

1. Vue概述 Vue.js&#xff08;读音 /vjuː/, 类似于 「view」&#xff09; 是一套构建用户界面的 「渐进式框架」。与其他重量级框架不同的是&#xff0c;Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层&#xff0c;并且非常容易学习&#xff0c;非常容易与其它库…

在Visual Studio/Qt Creator 中使用CMake安装和使用vcpkg包

文章目录 0. vcpkg简介和安装0.1 vcpkg简介0.2 vcpkg安装0.2.1 如何在Visual Studio 2022以及以上版本中安装vcpkg0.2.2 在其他VS版本或Qt Creator等平台上中安装vcpkg 1. 在Visual Studio 中使用CMake安装和使用vcpkg包1.1 创建Visual Studio项目1.2 设置项目文件a. 配置CMake…

FLUX.1 实测,堪比 Midjourney 的开源 AI 绘画模型,无需本地显卡,带你免费实战

要列举 AI 绘画开源界的几个关键贡献&#xff0c;一定少不了 Stable Diffusion。 还记否前不久刚推出的 Stable Diffusion 3&#xff1f; 其背后的团队 Stability AI&#xff0c;真的是一波三折&#xff0c;其核心成员出走&#xff0c;成立了一个新公司&#xff1a;Black For…

【Hot100】LeetCode—41. 缺失的第一个正数

原题链接&#xff1a;41. 缺失的第一个正数 1- 思路 手动实现哈希的方式 1- 遍历数组&#xff1a;如果当前的元素落在了 [1,N] 区间内&#xff0c;则 i 元素 赋值在 i-1 的位置上 比如对于数字 1 落在 数组 [0] 的位置 2- 判断条件 利用 while 加条件 ①当前元素落在了 [1,N]…

LVS(Linux virual server)

一&#xff1a;环境准备&#xff1a; rhel9 软件&#xff1a;httpd&#xff0c; ipvsadm 四台纯净的rhel9机子&#xff1a;一台LVS调度设备&#xff08;双网卡&#xff09;&#xff0c;两台webserver&#xff08;单网卡仅主机&#xff09;&#xff0c;一台客户机 DR模式多…

夏天猫毛满天飞?别怕一篇文章教你空气净化器怎么选

家里猫实在太多&#xff0c;3只短毛加上2只长毛&#xff0c;简直就是行走的蒲公英。夏天一到&#xff0c;猫咪的毛发便开始肆意飞舞&#xff0c;这对爱猫人士来说无疑是个烦恼。自从养猫以后&#xff0c;已经养成了每天都打扫卫生的习惯&#xff0c;吸尘器、扫地机必不可少&…

四种推荐算法——Embedding+MLP、WideDeep、DeepFM、NeuralCF

一、EmbeddingMLP模型 EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成&#xff0c;使用 Embedding 层是为了将类别型特征转换成 Embedding 向量&#xff0c;MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层&#xff0c;是模…

【MySQL】全面剖析索引失效、回表查询与索引下推

1.索引失效的情况 以tb_user表举例&#xff0c;id为主键索引、name和phone字段上建立了一个普通索引&#xff0c;name和phone均为varchar类型。 索引列运算 当在 WHERE 子句或 JOIN 子句中对列使用函数或表达式时&#xff0c;索引会失效。 执行以下语句&#xff0c;可以发现执…

STM32-门电路-储存器-寄存器-STM32f1-MCU-GPIO-总线-keil5-点led

1、门电路 门电路组成简单加法器&#xff1a; 二进制对电路的影响&#xff1a; 0和1代表无和有&#xff1b; 以下图例&#xff0c;演示与门&#xff1a;左1右1输出1&#xff1b; 电平标准&#xff1a;使用不同的电压表示数字0和1&#xff1b; 高电平&#xff1a;1&#xff1…

AI在医学领域:残差扩散模型预测特发性肺纤维化 (IPF)

关键词&#xff1a; IPF 进展预测、残差扩散模型、临床信息 特发性肺纤维化&#xff08;Idiopathic Pulmonary Fibrosis&#xff0c;IPF&#xff09;是一种严重且不可逆的肺部疾病&#xff0c;它会导致肺部组织出现瘢痕和增厚&#xff0c;从而引起呼吸困难。。及时对IPF进行治…

电子围栏报警系统的创新应用

在科技日新月异的今天&#xff0c;安全防护技术正以前所未有的速度发展&#xff0c;其中&#xff0c;电子围栏报警系统作为智能安防领域的佼佼者&#xff0c;正逐步成为各行各业守护安全的主要选择方案。这一创新技术的应用&#xff0c;不仅极大地提升了安全防护的效率和精准度…

24/8/7 算法笔记 支持向量机回归问题天猫双十一

import numpy as np from sklearn.svm import SVR import matplotlib.pyplot as plt X np.linspace(0,2*np.pi,50).reshape(-1,1) y np.sin(X) plt.scatter(X,y) 建模 线性核函数 svr SVR(kernel linear) svr.fit(X,y.ravel())#变成一维y_ svr.predict(X) plt.scatter(…

阿里云播放器 web端 问题解决总结

1&#xff1a;ios设备长按视频&#xff0c;会出现系统的放大镜效果&#xff1a; 可以只监听touchstart事件即可 var playerContainer document.getElementById(this.playerId); playerContainer.addEventListener(touchstart, preventZoom, { passive: false }); playerConta…