当前位置: 首页 > news >正文

广州番禺建设银行网站登录深圳福田区口岸社区

广州番禺建设银行网站登录,深圳福田区口岸社区,网站地图代码,屏蔽ip网站吗个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展
📃个人状态: 研发工程师,现效力于中国工业软件事业
🚀人生格言: 积跬步至千里,积小流成江海
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2/3项目实战 🥝Node.js🍒Three.js 🍖JS版算法
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

Pinia

内容参考链接
Vue3正式发布那么久了,你认识Pinia了吗?认识Pinia,搭建开发环境
Pinia 核心概念核心概念(Store、State、Getter、Action)
购物车 DemoPinia 实现简易版购物车

文章目录

  • Pinia
    • ✨✨前言
    • ✨✨Pinia 持久化插件
    • 🎉🎉本篇小结


✨✨前言

就我们上篇文章中的 简易版购物车实战 而言,它的状态是 不持久的,因为当我们对商品加/减,对单选/全选框进行操作后,再 刷新页面,就 又回到了最原始的状态,那么如何能记录我们之前的操作呢,Pinia持久化插件就可以解决该问题!


✨✨Pinia 持久化插件

Pinia 持久化插件是一个函数,可以选择返回要添加到 store 的属性。

其基本思路为:监听 state 的变化,把每次变化的结果放到 localStorage 中。

我们在 store 文件下创建 plugins文件,再创建 persistedState.ts 文件

在这里插入图片描述

persistedState.ts

我们导入 pinia,把 PiniaPluginContext 赋值给 context,为 PiniaPlugin 的 上下文

通过 context.store.$id(即模块名) 我们可以获取到 localStorage 的详细内容。

通过 context.store.$patch 我们可以把数据存放到 pinia 对应的模块里。

通过 context.store.$subscribe 我们可以在每次 state 发生变化时,把它保存到 localStorage 中。

当我们点击 Age+1 按钮时,看一下 _storestate 的庐山真面目:

在这里插入图片描述

import { PiniaPluginContext } from "pinia";export function persistedState(context: PiniaPluginContext) {// 根据模块名,拿到对应localStorageconst currentState = JSON.parse(localStorage.getItem(context.store.$id) || "{}")// 把数据存放到pinia对应的模块里context.store.$patch(currentState)/*** 每次state发生变化时,都把它保存在localStorage里* 参数一:当前修改store的上下文,可以通过它获取_store.storeId充当键* 参数二:当前修改的状态,可以充当值*/context.store.$subscribe((_store, state) => {console.log(_store)console.log(state)// 存入键值(依据上图数据结构)(需要序列化)localStorage.setItem(_store.storeId, JSON.stringify(state))}, {// 组件卸载,依赖仍然存在detached: true})
}

shop.vue

在上一篇 Pinia实现简易版购物车 的基础上,我们对 shop.vue 进行补充,把 user.ts 也引入了进来,并进行简单的使用(年龄+1)

<div><button @click="userStore.age += 1">Age+1</button>{{ userStore.age }}
</div>
...
import { useUserStore } from './store/user';
const userStore = useUserStore();

index.ts

index.ts 中导入 persistedState,然后通过 pinia 使用它

import { createPinia } from 'pinia'
import { persistedState } from './plugins/persistedState'const pinia = createPinia()// 使用插件
pinia.use(persistedState)export default pinia

这样我们的自定义持久化插件就完成啦~

Pinia自定义持久化插件


🎉🎉本篇小结

本篇借助 Pinia 的一些属性,把数据存储到 localStorage,从而实现了数据的持久化。

其实也有一些现成的持久化插件,比如终端键入:npm i pinia-plugin-persist-S 并进行相应配置等,也可以实现数据的持久化(感兴趣的小伙伴可以自行搜索 Pinia持久化插件 的具体内容,学习安装及相关配置)!

好啦,本篇文章到这里就要和大家说再见啦,祝你这篇文章阅读愉快,你下篇文章的阅读愉快留着我下篇文章再祝!


参考资料:

  1. Pinia 官方文档
  2. Pinia 教程 【作者:千锋教育】

在这里插入图片描述


http://www.yayakq.cn/news/874500/

相关文章:

  • 图片演示dw做网站响应式mvc企业网站源码
  • 北京网站如何做推广小程序注册条件
  • 网站基础建设英文翻译wordpress 查看大图
  • 织梦cms做网站教程视频旅游网站建设意义
  • 五个h5制作网站wordpress注册发送验证码
  • 移动端网站建设的软件有哪些wordpress实现首页功能能
  • 做网站用什么软件设计好房源网
  • 营销型网站制作流程找外包公司做网站价钱
  • 自己做网站能赚到广告费吗苏州设计网页
  • 自己做的腾讯充值网站网站导航栏分析
  • 网站建设栏目结构表网页电商设计
  • 网站中怎么做网站统计wordpress获取文章链接
  • 钓鱼网站的类型食品网站app建设
  • 一个备案可以做几个网站做相册哪个网站好用
  • 临淄信息网港山东网站优化公司
  • 最好的网站模版wordpress 卡密注册
  • 网站显示时间代码域名注册多少钱
  • 厦门做网站公司排名公司的网页设计
  • 自己做购物网站推广招代理
  • 如何做领券网站中移建设有限公司官方网站
  • 行政单位门户网站建设方案住建局官网查询系统
  • 建立单页网站手机大全及价格
  • 淄博市住房和城乡建设厅网站哪些网站首页做的好
  • 长沙网站制作培训基地中国购物网站大全排名
  • 云南网是什么网站怎样申请微信公众平台账号
  • 深圳 企业网站建设江苏建设工程招标网官方网站
  • 广东省建设厅的注册中心网站首页哪家做网站做得好
  • 给一个公司做网站需要多久深圳 企业网站建设
  • 如何加强校园网站建设wordpress邮箱用不了
  • 建设网站要钱么乐陵seo外包信德