一、数据表设计1、需求分析(1)目的:  由于此项目作为一个后台管理系统模板,不同用户登录后应该有不同的操作权限,所以此处实现一个简单的菜单权限控制。即不同用户登录系统后,会展示不同的菜单,并对菜单具有操作(增删改查)的权限。(2)数据表设计(自己瞎捣鼓的,有不对的地方还望 DBA 大神不吝赐教(=_=)):需求:  一个用户登录系统后,根据其所代表的的角色,去查询其对应的菜单权限,并返回相应的菜
数据存放保存在window对象中可以作为全局组件通信的媒介,不过这种方式不具备响应性能力,所以数据更时无法直接通知订阅数据的组件更新。使用vuex .保存数据与window保存的原理一样,都是借助了全局对象进行数据互通, 不同的是vuex通过订阅发布机制可以将vue数据的更新通知到所有订阅状态的组件身上,实现数据变更时各个组件状态同步,不过前两者单独使用的时具备另一个相同的严重问题, 就是保存的数
转载 2023-07-05 21:25:48
110阅读
总体流程概述:一、未登录 1、打开登录页,请求被token过滤器类JwtAuthenticationTokenFilter拦截,从请求头中查询token,发现没有,接着调用后台生成验证码接口,生成验证码,将验证码值存入redis,然后,将uuid和验证码图片,响应会前端页面。2、输入用户名和密码,提交表单登录请求,同样先被token过滤器类JwtAuthenticationTokenFilter拦
知识点基于 Server-Sent Event 工作方式,Web 即时通信Redis 包 发布订阅功能的使用 flask 快速入门,常用对象实例方法函数Vuejs 列表页面自动渲染效果图代码段 app.py 主文件import datetime from flask import Flask, session, redirect, Response, request, rend
转载 2023-05-24 16:25:36
169阅读
本次实验是基于前后端分离项目:springboot+vue+redis接口校验时机: 后端:拦截所有请求,放行登录请求、请求头中包含token(用户名和密码正确时,回生成一个令牌,用来放心别的请求)的请求。 前端:拦截所有请求,放行登录请求、对非登录请求{如果,用户已经登录,则给请求头中添加token,如果用户未登录,跳到登陆页面}1 后端实现1.1 集成redis1.2 书写WebAppConf
转载 2023-08-11 17:05:07
98阅读
该项目功能页面内容: 1.注册 2.登录 3.退登、修改密码/修改昵称 4.列表页(可新增,删除,修改,查询) 5.子账号页(可增,删,改,查)==》仅对超级管理员开放用到技术: 1.反向代理 2.数据库建表,请求mysql数据库 3.进行node模块化开发,分模块处理请求()具体功能: 1.生成验证码 2.token:前端用uuid加密生成token实现验证码一一对应 3.用redis(可支持:
转载 2023-09-07 20:52:47
289阅读
一:使用IDEA创建springboot项目: 输入项目名称,选择位置,需要版本管理就勾选创建Git仓库,选择JDK版本,选择打包方式(为了后续部署服务器做准备) 勾选自己需要的依赖(后续有需要再利用maven引入也可以),本次项目不涉及Spring Cloud 点击创建 创建成功: 链接数据库: 编辑配置文件: .properties写起来比较麻烦,定义一个application.yml文件配置
以首页的文件访问作为示例使用Redis 一方面加快用户访问速度 一方面缓解频繁访问数据库的压力 之前每次访问首页都会请求数据库数据Redis安装以及配置所需文件 解压后,双击下述脚本,启动redis 可视化软件安装、设置安装路径然后一直点下一步就OK 采用软件连接本地Redis【默认端口6379】后台代码采用Cache实现缓存pom.xml添加Cache缓存的依赖<!-- cache --&
转载 2023-09-05 20:53:36
0阅读
 后端接口测试成功后只需要对接前端,首次登录成功后将后端传递的token利用vuex相关知识进行存储,在全局请求拦截器前添加相应的token前端跨域const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true }) mod
文章目录前言测试执行流程说明1、请求接口2、请求参数3、预想结果4、请求结果源码分析1、流程简图(非常重要)2、Lua 脚本3、Lua 脚本代码分析4、Redis 实际执行结果附文Redis monitor 模式下控制台输出完整内容 前言承接上篇,本篇来探讨一下 当超过了缓存 maxSize 时,底层脚本是如何操作的,事不宜迟,马上开始。测试执行流程说明1、请求接口 调用次数:三次2、请求参数名
实现基本思路登录界面向后台请求验证码,后台呢就 先调用随机函数生成验证码,并且更具验证码生成一张图片,以 base64 字符串的形式传到前台,这时我们还要生成jwt令牌做为请求验证码客户端的区分。我们先将验证码信息存入reids。key是 jwt令牌的值,value就是验证码了。并且将令牌放入到响应头。传给客户端。当客户端提交的时候将保持的jwt令牌放入请求头带过来。后端根据前端传过来的 jwt令
centos8 redis安装 1:redis安装 (可以选择在线安装,没有外网的情况就只能自己先下载好再上传到服务器) a:使用 #wget http://download.redis.io/releases/redis-5.0.7.tar.gz(在线安装) wget http://download.redis.io/releases/redi
转载 4月前
56阅读
Base 2.8.7 Redis是一个包含了很多Key-Value对的大字典,这个字典支持的Value非常丰富,可以为 字符串、哈希表、列表、集合和有序集,基于这些类型丰富的value,扩展出了功能强大的操作,例如hmset、lpush、sadd等 字典字典是Redis最基础的数据结构,一个字典即一个DB,Redis支持多DB Redis字典采用Hash表实现,针对碰撞问题,其采用的方法为“
转载 2023-08-24 13:23:36
10阅读
1、为什么要用vuex持久化存储vue项目以单页面模式存在,那么必然会引起一个问题,就是会首次加载所有资源,即使对路由使用懒加载,也会比较慢,那么就有根据项目的功能模块来区分: 每个模块为一个vue项目,每次路由导航都是跳转到另一个项目的index.html中(蛮像以前的jq模式),那么会出现一种情况,就是每个vue项目都有自己的vuex数据存储,那么如何实现通用数据(用户信息及token等)和
转载 4月前
49阅读
一、Vuex是什么Vuex是专门为Vuejs应用程序设计的状态管理工具。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。1、Vuex的构成1)statestate是存储的单一状态,是存储的基本数据。2)Gettersgetters是store的计算属性,对state的加工,是派生出来的数据。就像computed计算属性一样,getter返回的值会根据它的
转载 3月前
158阅读
使用场景防止用户过渡刷新或切换界面,不断的请求后端接口,所以在前端对用户拿到的部分数据进行缓存。特别是查看分页数据的情况,用户频繁切换界面是可以有效的对数据进行缓存。目录结构WebSql.js 创建数据库表,储存key,value,过期时间import Vue from 'vue' import {executeSql} from '@/utils/localDb' const WebSql=f
vue项目的创建(路飞前端) -安装node.js -安装vue的脚手架 -创建vue项目,vue create 项目名字 在pycharm中开发vue -webstrom,pyacharm,goland,idea,androidStuidio,Php.... -Edit-conf----》点+ 选npm-----》在script对应的框中写:serve vue项目
转载 2023-06-16 15:35:39
89阅读
一、介绍先来看一个问题?从首页的区块链模块切换到文章详情页面,再从文章详情页面回到首页,我们发现首页重新渲染原来的状态没有了,又回到了推荐模块。首先,这是正常的状态,并非问题,路由在切换的时候会销毁切出去的页面组件,然后渲染匹配到的页面组件。但是我想要某些页面保持状态,而不会随着路由切换导致重新渲染。二、解决方案使用 keep-alive 缓存组件官方文档:在动态组件上使用 keep-alive
1. 回顾1. Vue通过脚手架创建Vue工程。    1.组件【网页】--->组件【父组件】可以引用另一个组件[子组件].        父组件怎么传参给子组件    2.路由:      [1]路由跳转         
项目目录资源准备前后端分离项目技术栈Java后端接口开发1、前言2、新建Springboot项目3、整合mybatis plus3、统一结果封装4、整合shiro+jwt,并会话共享ShiroConfigAccountRealmJwtTokenAccountProfileJwtFilter5、异常处理6、实体校验7、跨域问题Swagger2配置8、登录接口开发9、博客接口开发10、后端总结Vue
  • 1
  • 2
  • 3
  • 4
  • 5