实现 React、Vue3 的动态路由
后端说明 简单说一下常见的 RBAC (Role Based Access Control) 模型, 主要是由 User、Role、Resource 三个表组成, 如图所示: User 表存储用户信息, Role 表存储角色信息, Resource 表存储资源信息, User 和 Role 是多对多的关系, Role 和 Resource 是多对多的关系, 通过 UserRole 和 RoleResource 两张中间表来实现多对多的关系, UserRole 表存储 User 和 Role 的关系, RoleResource 表存储 Role 和 Resource 的关系 流程 用户登录之后得到用户 Id user_id 在 user_role 表中 根据 user_id 得到对应的角色 role_id 在 role_resource 表中 根据 role_id 得到对应的资源 resource_id 列表 在 resource 表中 根据 resource_id 得到对应的...
使用 useSWR + Axios 封装 React 请求
前提 因为 React18 的 React.StrictMode (严格模式), 组件会在开发环境下执行两次, 但是在生产环境下, 只执行一次. 所以在 useEffect 写请求就不再合适。 关于 useSWR 关于 React.StrictMode 示例代码 封装 Axios请求响应拦截器(错误抛出的弹窗, 自定义处理)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// 请求拦截器(全局配置)axios.interceptors.request.use( (config: any) => { // 这里可以做一些请求拦截,比如请求头携带 token // @ts-ignore (防止下面报错) // config.headers.Authorization =...
获取微信小程序用户信息
前提 获取用户信息调整, 详见官方公告 目前尝试获取的用户信息只有头像和昵称,其他信息都是空的 个人开发者不能获取用户手机号,需要企业开发者才能获取 前端获取用户信息示例代码三种方式获取用户手机号 通过微信小程序的云开发能力获取手机号 cloudID. (未使用过 x.x, 本文没有介绍) 通过后端向微信服务端换取真实手机号的动态令牌 code 通过 wx.login 获取的 code 以及 加密数据 encryptedData, iv.注意: 不要在 button 回调里写 wx.login, 否则请求微信服务端会出现 pad block corrupted 问题 123456789const getUserPhone = (e: any) => { // e.detail = { // cloudID: "xxx", // 云ID (方式1) // code: "xxx", // 后端向微信服务端换取 真实手机号 的 code, 不是 wx.login 的 code (方式2) ...
封装 Taro 请求
流程图 文件目录1234⊢ request ⨽ http.ts ⨽ index.ts ⨽ interceptors.ts 使用 Taro.addInterceptor 添加请求/响应拦截器 [interceptors.ts]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128import Taro from '@tarojs/taro';import { post } from '.';/** * 获取...
RedisJson
前因 在使用 FastAPI 框架时, 用到了 redis-om 包, 但是在使用时, 发现 redis-om 包默认不支持 Json 格式的数据, 需要引入对应的模块才可以. 详见: Github-issue 仅限使用的这个框架, 如果 FastAPI 中能有像 Spring 中的 RedisTemplate 那样的工具, 或者有像 gson、fastjson 这种序列化的包, 那就好了. window 使用 RedisJSON 下载 redis 下载 rejson 安装 RedisJson 模块,需要先安装 Redis,然后再安装 RedisJson 模块。 1234567891011121314...# loadmodule .\path\to\my_module.dll# loadmodule c:\path\to\other_module.dll# 加载模块loadmodule .\ReJSON_for_Windows_1_0_6_1\ReJSON.dll.........# requirepass foobared# 设置密码requirepass...