SET/GET 与 EXPORT/IMPORT的区别

本文详细比较了SAP内存与ABAP内存的区别:包括使用方法、共享范围、作用范围等方面。SAP内存通过SET/GET parameters方法访问,而ABAP内存则使用EXPORT和IMPORT方法;SAP内存可以在所有主session间共享,而ABAP内存仅限于同一session内部共享;此外还介绍了两种内存的有效期及一般使用原则。
 
1、读取哈使用方法不同
SAP内存使用SET/GET parameters方法;
ABAP内存使用 EXPORT 和 IMPORT 方法;

2、共享范围不同
SAP内存可以被所有的主session访问,内存数据可以同一个session中不同程序之间,或者不同session之间;
ABAP只能在同个session的不同程序之间共享数据;

3、作用范围不同
SAP内存在整个终端session时间内都有效;
ABAP内存只能在一个session时间内有效;

4、使用一般原则
SAP内存用于屏幕默认值输入;

import { defineStore } from "pinia"; import { UserState } from "@/stores/interface"; import piniaPersistConfig from "@/stores/helper/persist"; import { getUserInfo,getUserRule as requestUserInfo } from "@/api/modules/common"; export const useUserStore = defineStore({ id: "geeker-user", state: (): UserState => ({ hndyToken: "", userInfo: { name: "Geeker" }, expandMenuList: [], //当前展开的菜单 }), getters: {}, actions: { // Set Token setToken(token: string) { this.hndyToken = token; }, // Set setUserInfo setUserInfo(userInfo) { this.userInfo = userInfo; }, async getUserInfo() { const { data } = await requestUserInfo(); if (data && typeof data === "object") { this.setUserInfo(data); } }, async getUserRule() { }, // 增加展开的菜单 addExpandMenuList(path) { this.expandMenuList.push(path); }, // 删除收起的菜单 removeExpandMenuList(path) { this.expandMenuList = this.expandMenuList.filter(ele => ele !== path); }, }, persist: piniaPersistConfig("geeker-user") }); import http from "@/api"; import axios from "axios"; // 用户信息 export const getUserInfo = () => { return http.get(`/userCenter/userInfo/getUserInfo`); }; // 当前用户角色信息 export const getUserRule = () => { return http.get(`/org/getUserRole`); }; export const generateUniqueId = () => { var timestamp = Date.now().toString(36); // 使用36进制,避免出现数字开头的问题 var randomNum = Math.random().toString(36).substr(2, 9); // 获取随机数的36进制表示,并截取后9位 return timestamp + randomNum; } export const sendPostRequest =(funcId, funcName, data, callback?) => { let params = JSON.stringify({ version: "1.0", seqNo: generateUniqueId(), funcName: funcId, inParams: data, }); return new Promise((resolve, reject) => { axios.post("http://127.0.0.1:9001/", params).then((response) => { if (response.data.rtnCode == "0") { resolve(response.data.outParams); } else { reject(response.data.rsltMsg); } }).catch((error) => { console.error("An error occurred:", status, error); reject(error); }); }); } 在getUserRule中调用获取角色接口,把值存储到geeker-user中
08-27
const getters = { sidebar: state => state.app.sidebar, language: state => state.app.language, size: state => state.app.size, device: state => state.app.device, visitedViews: state => state.tagsView.visitedViews, cachedViews: state => state.tagsView.cachedViews, token: state => state.user.token, avatar: state => { return state.user.avatar ? state.user.avatar : require('@/assets/avatar_default.gif') }, name: state => state.user.name, userData: state => { // return new Function('return ' + localStorage.getItem('userData'))() return state.user.userData }, introduction: state => state.user.introduction, status: state => state.user.status, roles: state => state.user.roles, permission_routers: state => state.permission.routers, addRouters: state => state.permission.addRouters } export default getters import Vue from 'vue' import Vuex from 'vuex' import app from './modules/app' import user from './modules/user' import permission from './modules/permission' import tagsView from './modules/tagsView' import getters from './getters' Vue.use(Vuex) const store = new Vuex.Store({ modules: { app, user, permission, tagsView }, getters }) export default store auth.js:32 Uncaught TypeError: Cannot read properties of undefined (reading 'token') at getToken (auth.js:32:1) at ./src/store/modules/user.js (user.js:10:1) at __webpack_require__ (bootstrap:767:1) at fn (bootstrap:130:1) at ./src/store/index.js (index.js:1:1) at __webpack_require__ (bootstrap:767:1) at fn (bootstrap:130:1) at ./src/main.js (main.js:1:1) at __webpack_require__ (bootstrap:767:1) at fn (bootstrap:130:1)import Cookies from 'js-cookie' import store from 'store' const TokenKey = 'Token' const CodeKey = 'Hrcode' const UserKey = 'User' const LongCare = 'longcare' export function removeLongCareToken() { return Cookies.remove(LongCare) } export function setLongCareToken(token) { return Cookies.set(LongCare, token) } export function getLongCareToken() { return Cookies.get(LongCare) } export function removeUser() { return Cookies.remove(UserKey) } export function getUser() { return Cookies.get(UserKey) } export function setUser(user) { return Cookies.set(UserKey, user) } export function getToken() { return store.state.token } export function setToken(token) { return Cookies.set(TokenKey, token) } export function removeToken() { return Cookies.remove(TokenKey) } export function setCode(code) { return Cookies.set(CodeKey, code) } export function getCode() { return Cookies.get(CodeKey) } export function removeCode() { return Cookies.remove(CodeKey) }
最新发布
11-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值