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

app与网站网站 防攻击

app与网站,网站 防攻击,电子商务网站的作用,微网站建设报价表目录 一、基本用法(原生 API) 1. 存储数据 2. 获取数据 3. 删除数据 二、Vue3 中封装成工具函数(推荐) 三、以上工具函数在 Vue3 组件中使用 1. 在选项式 API 中使用 2. 在组合式 API(setup 语法糖)…

目录

一、基本用法(原生 API)

1. 存储数据

2. 获取数据

3. 删除数据

二、Vue3 中封装成工具函数(推荐)

三、以上工具函数在 Vue3 组件中使用

1. 在选项式 API 中使用

2. 在组合式 API(setup 语法糖)中使用

四、将存储结合 Pinia 实现响应式存储(高级用法)

1. 在组件中使用

五、注意事项

一、基本用法(原生 API)

本地存储和会话存储的核心 API 完全一致,区别在于:

  • localStorage:数据持久化存储,关闭浏览器后不会丢失(除非手动清除)
  • sessionStorage:数据仅在当前会话有效,关闭标签页 / 浏览器后自动清除
1. 存储数据
// 存储到本地存储
localStorage.setItem('userName', '张三'); // 存储字符串
localStorage.setItem('userInfo', JSON.stringify({ id: 1, name: '张三' })); // 存储对象(需序列化)// 存储到会话存储
sessionStorage.setItem('token', 'abc123');
sessionStorage.setItem('cart', JSON.stringify([{ id: 1, name: '商品' }]));
2. 获取数据
// 从本地存储获取
const userName = localStorage.getItem('userName'); // 获取字符串
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}'); // 获取对象(需反序列化)// 从会话存储获取
const token = sessionStorage.getItem('token');
const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
3. 删除数据
// 删除单个数据
localStorage.removeItem('userName');
sessionStorage.removeItem('token');// 清空所有数据
localStorage.clear();    //清空本地存储
sessionStorage.clear();    //清空会话存储

二、Vue3 中封装成工具函数(推荐)

为了更方便使用,可以将以上这些方法封装成工具函数,放在 utils/storage.js 中,封装如下:

// 本地存储工具函数
export const LocalStorage = {// 设置数据set(key, value) {if (typeof value === 'object') {value = JSON.stringify(value);}localStorage.setItem(key, value);},// 获取数据get(key) {const value = localStorage.getItem(key);if (!value) return null;// 尝试解析为对象try {return JSON.parse(value);} catch (e) {return value; // 解析失败则返回原始字符串}},// 删除数据remove(key) {localStorage.removeItem(key);},// 清空所有数据clear() {localStorage.clear();}
};// 会话存储工具函数
export const SessionStorage = {set(key, value) {if (typeof value === 'object') {value = JSON.stringify(value);}sessionStorage.setItem(key, value);},get(key) {const value = sessionStorage.getItem(key);if (!value) return null;try {return JSON.parse(value);} catch (e) {return value;}},remove(key) {sessionStorage.removeItem(key);},clear() {sessionStorage.clear();}
};

三、以上工具函数在 Vue3 组件中使用

1. 在选项式 API 中使用
<template><div><p>用户名:{{ userName }}</p><button @click="saveUser">保存用户信息</button></div>
</template><script>
import { LocalStorage } from '@/utils/storage';export default {data() {return {userName: ''};},mounted() {// 组件挂载时获取本地存储的数据this.userName = LocalStorage.get('userName') || '未登录';},methods: {saveUser() {// 保存数据到本地存储LocalStorage.set('userName', '张三');LocalStorage.set('userInfo', { id: 1, age: 20 });this.userName = '张三';}}
};
</script>
2. 在组合式 API(setup 语法糖)中使用
<template><div><p>Token:{{ token }}</p><button @click="saveToken">保存Token</button></div>
</template><script setup>
import { ref, onMounted } from 'vue';
import { SessionStorage } from '@/utils/storage';// 响应式变量
const token = ref('');// 组件挂载时获取会话存储的数据
onMounted(() => {token.value = SessionStorage.get('token') || '无';
});// 保存数据到会话存储
const saveToken = () => {SessionStorage.set('token', 'abc123456');token.value = 'abc123456';
};
</script>

四、将存储结合 Pinia 实现响应式存储(高级用法)

如果需要让存储的数据在组件中保持响应式(数据变化时自动更新视图),可以结合 Pinia 状态管理,如下:

import { defineStore } from 'pinia';
import { LocalStorage } from '@/utils/storage';export const useStorageStore = defineStore('storage', {state: () => ({// 从本地存储初始化数据(响应式)userInfo: LocalStorage.get('userInfo') || {},theme: LocalStorage.get('theme') || 'light'}),actions: {// 更新用户信息并同步到本地存储setUserInfo(info) {this.userInfo = info;LocalStorage.set('userInfo', info); // 同步到本地存储},// 更新主题并同步到本地存储setTheme(theme) {this.theme = theme;LocalStorage.set('theme', theme);}}
});
1. 在组件中使用
<template><div><p>用户名称:{{ storageStore.userInfo.name }}</p><button @click="updateUser">更新用户信息</button></div>
</template><script setup>
import { useStorageStore } from '@/stores/storage';const storageStore = useStorageStore();const updateUser = () => {storageStore.setUserInfo({ id: 1, name: '李四', age: 25 });
};
</script>

五、注意事项

  1. 存储容量限制:localStorage 和 sessionStorage 通常有 5MB 左右的容量限制,不适合存储大量数据
  2. 数据类型限制:只能存储字符串,对象 / 数组需要通过 JSON.stringify() 序列化
  3. 安全性:存储在本地的信息容易被篡改,敏感数据(如密码)不应直接存储
  4. 跨域限制:不同域名之间不能共享 localStorage/sessionStorage 数据
  5. 响应式问题:直接修改 localStorage 不会触发 Vue 组件更新,需手动刷新或结合 Pinia 实现响应式

根据需求选择合适的存储方式:需要持久化的数据用 localStorage,临时会话数据用 sessionStorage。

http://www.dtcms.com/a/425971.html

相关文章:

  • 郑州做网站哪里便宜最有实权的十大部门
  • 个人网站做推广服装网站ui设计
  • 用ps怎么做网站的效果图电子商务具体干嘛的
  • 哪里可以制作网站针织衫技术支持东莞网站建设
  • 湖南做网站公司有哪些360浏览器网页打不开是什么原因
  • 简单的购物网站源码秀屿网站建设
  • 虚拟主机建网站苏州市网站建设
  • 阿里免费做网站上海制作网站
  • asp. net 做网站专业搜索服务网络公司
  • ps做网站 字体多大抚州市建设局网站查询
  • 网站建设利润绞铜机 东莞网站建设
  • 江苏省建设局报考网站做视频网站要申请什么许可证
  • 零代码建站网站建设正文字体多大合适
  • 兰州网站建设q.479185700強电商网站建设价格低
  • 广告设计制作方案搜索引擎优化怎么推广
  • 坪山做网站的公司古董专家官方网站微信
  • 重庆佳宇建设集团网站网站建设app端
  • 门户网站视频婚礼工作室网站模板
  • 医院网站建设费用泰安人才网58同城
  • 重庆建站模板平台WordPress编辑器加载慢
  • 婚庆设计网站模板青海住房和城乡建设厅网站
  • 电子商务网站建设专业主修课程北京建立公司网站
  • 金融电子商务网站建设wordpress自带功能
  • 手机被网站安装软件有哪些内容设计本装修家居
  • 梦幻建站网2022年大事热点新闻
  • 网站新开怎么做营销免费网站制作作业
  • 电子商务网站的开发方式有哪三种wordpress+纯静态插件
  • 最好的营销型网站案例化学网站建设
  • 临海企业网站设计国外vps国内vps
  • 沈阳专业网站制作设计wordpress公众号涨粉