笔记整理
怎么解决项目里面的跨域问题
-
跨域产生原因是因为 同源策略,所谓同源就是指,协议,IP,端口号这三项要保持一致,有一项不同就是跨域了
-
解决方法主要有:
(网关技术,后端 Cors,前端 jsonp) cros 后端用 @koa/cors这个依赖,主要是配置一个白名单,允许跨域请求
方案1:网关技术(nginx,zuul,springcloudgateway)【企业级处理方案】方案2:后端编码方式 (Controller种加上) @CrossOrigin 【跨域请求比较少】
方案3:前端处理 【vue 提供 proxy_table 组件】
路由三种模式:hash history abstract
- hash :在安全性方面更强大,是最安全的模式,兼容所有的浏览器和服务器 # (路径名带个“#” , router的mode设置为hash)
- history : History.back()、History.forward()、History.go()
var 、let 、const
ES6 提供的模块化方案叫做 ES Module,简称 esm
- ES Module 是 ES6提供的模块化标准;(之前没有模块化的概念,为什么提出来模块化?)
- ES Module 基础知识主要包含这几点:
- 默认开启严格模式;
- import
- export
- default export
为什么模块化?
- web sites慢慢变成了web app
- 随着项目的扩大,代码量越来越大,代码越来越复杂
- 对代码、文件的高度解耦的要求
- 优化上,希望减少http请求
webpack, vite 了解
-
webpack服务器启动速度比vite慢
由于vite启动的时候不需要打包,也就无需分析模块依赖、编译,所以启动速度非常快。当浏览器请求需要的模块时,再对模块进行编译,这种按需动态编译的模式,极大缩短了编译时间,当项目越大,文件越多时,vite的开发时优势越明显 -
vite热更新比webpack快
vite在HRM方面,当某个模块内容改变时,让浏览器去重新请求该模块即可,而不是像webpack重新将该模块的所有依赖重新编译; -
vite使用esbuild(Go 编写) 预构建依赖,而webpack基于nodejs, 比node快 10-100 倍
-
vite生态不及webpack,加载器、插件不够丰富
ES6特性的使用
- concat: 连接两个或多个数组,不改变原数组
- 数据合并,可以用拓展运算符…,数组去重 new Set()
- split
- includes:判断一个字符串里是否包含目标字段,返回是否
- . slice splice
- filter find :find方法中找到符合条件的项,就不会继续遍历数组。