权限相关
动态路由,由后台返回相关权限路由,用户登录后,获取到相关权限信息,在全局路由守卫中调用addRouters
小程序分包
-
建立分包文件夹:
- 在项目根目录下创建一个分包文件夹,例如命名为
subPackages。 - 在
subPackages文件夹下创建pages子文件夹用于存放页面文件,以及images子文件夹用于存放图片资源。
- 在项目根目录下创建一个分包文件夹,例如命名为
-
文件构建:
- 将除了底部菜单栏对应的页面之外的其他页面文件移动到
subPackages/pages文件夹下。 - 确保原
pages文件夹下只保留底部菜单栏对应的页面,以保持文件大小最小。
- 将除了底部菜单栏对应的页面之外的其他页面文件移动到
-
文件配置:
- 在项目根目录下找到
[app.json](){"sa":"re_dqa_zy","icon":1}文件,进行分包文件的配置。 - 配置时需要完整地填写分包信息,注意不要多写或少写任何必要的字段。
- 完成配置后,不要忘记更新项目中所有跳转页面的路径,以确保它们指向正确的分包路径。
- 在项目根目录下找到
判断是否是一个数组
- isArray
- instanceof
- constructor
- Object.prototype.toString.call
Map、Set区别
- Map: 字典数据结构,类对象,键值对集合
- Set: 集合数据结构,类数组,由一组无序且唯一的项组成,多用于数组去重以及数据存储
watchEffect 和 watch
- 共同点 都是监听数据变化并执行相应操作的特性
- watchEffect 监听数据变化并自动执行副作用操作,不需要明确指定要监视的数据,自动跟踪函数内使用的响应式数据
- watch 需要指定监视的数据和要执行的回调函数,适用于需要对特定数据的变化做出反应的情况
SPA
单页应用,通过动态重写单签页面来与用户交互,一个主页面和多页页面片段组件,局部刷新,路由哈希模式,页面切换速度快,体验好,维护陈本底,但是对SEO不是很友好,可通过下面三种方式优化
- SSR服务端渲染
- 静态化:1).通过程序将动态网页抓取并保存为静态页面 2).通过WEB服务器的URL Rewrite
- 使用Phantomjs针对爬虫处理:通过Nginx配置,判断来源是都是爬虫,如是则转发到一个node server ,再通过Phantomjs解析完整的HTML,然后返回给爬虫、
优化:
- 减少入口文件的体积:路由懒加载,组件懒加载
- 静态资源本地缓存:
- 设置Cache-Control,Last-Modifiied, Etag等响应头
- Service Worker 离线缓存
- UI框架按需加载
- 公共组件打包, webpack设置CommonsChunkPlugin
- 骨屏架使用
事件循环-EvenLoop
遇到同步任务,直接推进调用栈中执行,遇到异步任务,先挂起,等异步任务有返回再推入任务队列,等到调用栈的同步任务,全都执行完成,将任务列表中的任务安装顺序再一个个推入并调用 异步任务分宏任务、微任务,先执行微任务再执行宏任务 宏任务:定时器,延时器,ajax请求等 微任务:then、catch、observe等
常见Code码
- 301:资源被永久转移到其他url,永久重定向
- 302:资源临时移动
- 304:请求资源未修改,不返回新的
- 401:需要身份认证,未授权
- 402:拒绝访问,无权限
- 500:服务器内部错误
- 503:服务器超载或系统维护
引用类型和值类型的区别
值类型:
- 分配在栈上,直接包含其实例
- 自动初始化为0,
- 不由GC控制,作用域介绍,自行释放
- 赋值是重新创建一个副本,修改后互相之间没有影响
引用类型
- 分配在堆上,变量通常包含一个指向实例的指针,变量通过该指针来引用实例
- 默认情况下是null
- 内存回收由GC完成
- 赋值共享同一块内存,修改之后互相之间有影响