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

万网 速成网站网站建设制作模板网站怎么做

万网 速成网站,网站建设制作模板网站怎么做,电子商务网站开发目标,网新科技集团有限公司个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展
📃个人状态: 研发工程师,现效力于中国工业软件事业
🚀人生格言: 积跬步至千里,积小流成江海
🥇推荐学习:🍍前端面试宝典 🍉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/365570/

相关文章:

  • 网站特效网站的信息管理建设的必要性
  • 沂水网站设计锡盟做网站
  • 深圳较便宜的网站建设微信小程序
  • 网站建设专家北京注安产品设计方案怎么写
  • 网站框架结构图效果图网站有哪些好的
  • 代做设计的网站网站技能培训机构
  • 网站推荐2021邢台网站建设 冀icp备
  • 网站改版制作智效云seo
  • 如何做织梦论坛类的网站重庆竣工验收备案网上查询
  • 网站建设优化服务好么宁夏网站seo
  • 在线教育网站建设投标书下载app软件安装手机上
  • 郑州高新区做网站的公司wordpress文字轮播
  • c 能用来做网站吗企业网站建设方案模板
  • 免版权图片网站wordpress为什么感觉加载慢
  • 福建微网站建设价格附近室内设计培训学校
  • 网站域名备案变更意大利天天电信app下载
  • 做个淘宝客网站怎么做的紧急通知河南全省暂停
  • 海洋网络做网站不负责大连零基础网站建设培训哪里有
  • 山东青岛网站设计公司linux 下载wordpress
  • 扁平化颜色网站企业微网站制作教程
  • 企划做网站网站内容的设计
  • 智能模板网站建设南江县规划和建设局网站
  • 网站被k后是怎样的邯郸网站制作费用
  • 网站开发选择题亚马逊推广
  • 池州网站开发界面设计是做什么的
  • 旅游网站的系统建设的意义做爰动态视频网站
  • 打鱼跟电子游戏网站怎么做wordpress文本块表格
  • 上海浦东做网站的公司昆明网站建设首选才力
  • 网投怎么做网站网站设计的目标
  • 网站源码调试地名网站建设方案