1.CSR和SSR分别是什么?
CSR是客户端渲染,客户端访问网站时,服务器向客户端发送Html文档,让浏览器去渲染。其中像js,图片等还需要再次发请求。就是要啥给啥绝不多给。
缺点:不利于SEO,首次加载速度慢,适合单页面应用程序,交互比较多的网站
SSR是服务端渲染,就是把处理好的html页面(包括数据什么)一并发给浏览器让他去加载。浏览器直接就能渲染出来数据和页面。
首次加载速度快利于seo,但是页面交互性非常差,更适合新闻,学校官网等交互性需求小的网站
2.什么是函数式编程?
#简单说说你对函数编程的理解
1.稳定:对于给定数据输出相同的结果
2.可以作为参数传递和返回,从而支持模块化
3.什么时候需要什么时候调用(惰性计算)
4.并发处理:就是因为不存在共享变量,所以各个任务不会发生因为同一个变量值的修改而无法继续执行的情况,可以将任务分成多个子任务同时执行
5.因为无副作用的特点(修改函数内部的变量不会影响函数外部变量值的特点),使得单元测试和集成测试更加容易和准确
6.缺点:因为有很多模块和递归问题可能会出现性能问题
3.Object.defineProperty和Proxy的区别
Vue2里面使用的是Object.defineProperty因为当时还是es5proxy还没有出现
Vue3里里面就开始用Proxy了
1.为什么Vue3里不用Object.defineProperty了呢?
--1.监听不了数组的变化
--2.必须使用Object.keys()遍历对象的每个属性
--3.必须使用递归深层遍历嵌套的对象(递归就会有性能问题)
2.Proxy数据劫持
--1.针对整个对象的(避免了深度递归)
--2.解决了无法劫持数组的问题
--3.更多的拦截方法