笔记

68 阅读4分钟
权限相关

动态路由,由后台返回相关权限路由,用户登录后,获取到相关权限信息,在全局路由守卫中调用addRouters

小程序分包
  1. 建立分包文件夹:

    • 在项目根目录下创建一个分包文件夹,例如命名为subPackages
    • subPackages文件夹下创建pages子文件夹用于存放页面文件,以及images子文件夹用于存放图片资源。
  2. 文件构建:

    • 将除了底部菜单栏对应的页面之外的其他页面文件移动到subPackages/pages文件夹下。
    • 确保原pages文件夹下只保留底部菜单栏对应的页面,以保持文件大小最小。
  3. 文件配置:

    • 在项目根目录下找到[app.json](){"sa":"re_dqa_zy","icon":1}文件,进行分包文件的配置。
    • 配置时需要完整地填写分包信息,注意不要多写或少写任何必要的字段。
    • 完成配置后,不要忘记更新项目中所有跳转页面的路径,以确保它们指向正确的分包路径。
判断是否是一个数组
  1. isArray
  2. instanceof
  3. constructor
  4. Object.prototype.toString.call
Map、Set区别
  1. Map: 字典数据结构,类对象,键值对集合
  2. Set: 集合数据结构,类数组,由一组无序且唯一的项组成,多用于数组去重以及数据存储
watchEffect 和 watch
  1. 共同点 都是监听数据变化并执行相应操作的特性
  • watchEffect 监听数据变化并自动执行副作用操作,不需要明确指定要监视的数据,自动跟踪函数内使用的响应式数据
  • watch 需要指定监视的数据和要执行的回调函数,适用于需要对特定数据的变化做出反应的情况
SPA

单页应用,通过动态重写单签页面来与用户交互,一个主页面和多页页面片段组件,局部刷新,路由哈希模式,页面切换速度快,体验好,维护陈本底,但是对SEO不是很友好,可通过下面三种方式优化

  • SSR服务端渲染
  • 静态化:1).通过程序将动态网页抓取并保存为静态页面 2).通过WEB服务器的URL Rewrite
  • 使用Phantomjs针对爬虫处理:通过Nginx配置,判断来源是都是爬虫,如是则转发到一个node server ,再通过Phantomjs解析完整的HTML,然后返回给爬虫、

优化:

  • 减少入口文件的体积:路由懒加载,组件懒加载
  • 静态资源本地缓存:
    1. 设置Cache-Control,Last-Modifiied, Etag等响应头
    2. Service Worker 离线缓存
  • UI框架按需加载
  • 公共组件打包, webpack设置CommonsChunkPlugin
  • 骨屏架使用
事件循环-EvenLoop

遇到同步任务,直接推进调用栈中执行,遇到异步任务,先挂起,等异步任务有返回再推入任务队列,等到调用栈的同步任务,全都执行完成,将任务列表中的任务安装顺序再一个个推入并调用 异步任务分宏任务、微任务,先执行微任务再执行宏任务 宏任务:定时器,延时器,ajax请求等 微任务:then、catch、observe等

常见Code码
  • 301:资源被永久转移到其他url,永久重定向
  • 302:资源临时移动
  • 304:请求资源未修改,不返回新的
  • 401:需要身份认证,未授权
  • 402:拒绝访问,无权限
  • 500:服务器内部错误
  • 503:服务器超载或系统维护
引用类型和值类型的区别
值类型:
  1. 分配在栈上,直接包含其实例
  2. 自动初始化为0,
  3. 不由GC控制,作用域介绍,自行释放
  4. 赋值是重新创建一个副本,修改后互相之间没有影响
引用类型
  1. 分配在堆上,变量通常包含一个指向实例的指针,变量通过该指针来引用实例
  2. 默认情况下是null
  3. 内存回收由GC完成
  4. 赋值共享同一块内存,修改之后互相之间有影响