没事干写点工作常用架构设计

66 阅读1分钟

服务器图片和本地图片分离设计

  • yarn install fs
  • /utils/img.js
   const fs=require("fs")
   import {defineStore} from "pinia"
   export const serverImgStote=defineStore({
       id:"server",
       state:()=>{
           return {
               arr:[]
           }
       },
       action:{
           fs.readdir("../static",(err,data)=>{
            if(!err){
               data.forEach((iteam,index)=>{
               this.arr.push(import.meat.process+iteam)
             })
          }
        })
       }
   })

 

Pinia异步数据设计

  • store/login/async
    import {defineStore} from "pinia"
    export const loginStore=defineStore({
        id:"loginStore",
        action:{
            async loginApi(){
                cosnt res=await loginController()
                console.log(res)
            }
        }
    
    })
    
  • store/main.js
    import {loginStore} from "store/login/asymc"
    export default{
        loginStore
    }

localforge异步本地缓存设计

  • yarn install localforage
    let obj={"name":"张三"}
    localforage.setItem("key",obj,(err,result)=>{
        console.log(result)
    })
    localforage.getItem("key",(err,value)=>{
        console.log(value)
    })

前端接口保护设计

  • yarn install loadsh
  • 熔断保护
    import _ from "loadsh"
    export funaction loginController(params){
        return _.debounce(()=>{ request.post("/login",params)},2000)
    }
  • 轮询请求
   import _ from "loadsh"
 export funaction loginController(params){
        return _.throttle(()=>{request.post("/login",params)},2000}
    }

网络服务请求头配置文件

    export default {
       "Content-Type":"application/json",
       "Connection":"keep-alive",
       "Authorization":localStorage.getItem("Token"),
       "Cache-Control":"Max-age=20;no-cache"
    
    }

全局分享朋友及朋友圈,复制连接功能

  • 全局
  1. /utils/share.js
    export function shareApp(){
        uni.onShareAppMessage({
            return {
                title:"标题",
                success:(res)=>{
                    console.log(res) //对接接口
                }
            }
        })
    }
    
    export function shareMenu(){
        uni.onShareTimeLine(){
            return {
                title:"标题"
            }
        }
    
    }
  1. main.js
    import {shareApp} from "/utils/share.js"
    const share=Vue.mixin(shareApp)
    app.use(share)

  • 下期uniapp分离式开发
  • 下期封装原生websocket