- 博客(16)
- 资源 (3)
- 收藏
- 关注
原创 render函数和h函数
想了解render函数首先需要知道虚拟domDom是文档对象模型的的简写,在浏览器中通过js来操作Dom性能很差,于是虚拟Dom应运而生。虚拟Dom就是在js中模拟Dom对象树来优化Dom操作的一种技术或思路,它并不是真正意义上的Dom,它作为一个轻量级的js对象,在状态发生变化时,会进行Diff运算,来更新发生变化的Dom,对于未发生变化的Dom节点,不予操作,由于不是全部重绘,大大提高更新渲染性能。使用render函数描述虚拟Dom时,vue提供了一个函数,这个函数是构建虚拟Dom所需要的工
2022-04-05 12:07:24
2990
原创 const定义的数据可以修改吗
const定义的数据是一个简单数据类型的时候,是不能修改的,但如果是一个复杂数据类型是可以修改的,因为对于数据的存放是有栈、堆之说的,当我存简单数据类型的时候,是放在栈中而对于复杂数据类型,是将它的地址放在栈中,真正的数据放在堆中,当我数据变化的时候并不会去修改我的地址,所以用const可以修改对象中的值...
2022-04-05 12:03:37
2957
原创 HTTP和HTTPS的区别
http协议传输的数据都是未加密的,也就是明文的,因此使用http协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了ssl协议用于对http协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由ssl+http协议构建的可以进行加密传输,身份认证的网络协议,要比http协议安全...
2022-04-05 12:01:39
1799
原创 Eventloop
事件循环机制,因为js执行是一个单线程,它是将所有的任务都压到主线程中进行执行的,如果遇到一个异步任务的话可能会消耗很多的时间,这时我们的页面就会出现所谓的假死,而我们通过eventloop消息线程的方式,来处理异步任务,当我遇到异步任务的时候放到消息线程中进行执行,执行完之后在任务队列中进行等待,等待主线程中的任务全部执行完之后,通过回调的方式,将我们的异步任务放到主线程中依次执行settimeout时间损耗的问题说是时间损耗,其实就是一个异步的问题,settimeout本身就是一个异步执行函数,
2022-04-05 11:59:58
95
原创 computed和watch的区别
watch是监听响应式数据的变化,当响应式数据变化的时候,我们去执行某个函数或者说某个方法,除了这两个参数之外,它还有第三个参数,也就是options,在options中提供了两个属性,一个是deep,表示深度监听,还有一个是immediate,表示主动在组件渲染之后的第一次触发监听computed本身是一个属性,但是他提供了类似于方法的定义,也就是说我在定义它的时候,其实是定义一个方法,在使用它的时候其实是一个属性,对于计算属性而言,它会缓存方法的计算结果,然后当我依赖的响应式数据发生变化时,重新触发
2022-04-05 11:59:06
83
原创 封装axios的步骤
1、new一个axios实例,在axios实例中设置基准地址和超时时间(因为每次调接口都需要基地址,所以在axios中统一设置基准地址)2、设置请求拦截器,接收两个回调函数,在第一个回调函数中对配置对象的请求头中统一注入token,并将配置对象return出去,第二个回调函数中return一个promise的错误信息(因为有很多接口都需要授权,所以在请求拦截器中,对配置对象的请求头统一设置token,处理接口授权的问题)(配置对象中包含请求地址、请求方式、请求头)3、设置响应拦截
2022-04-05 11:57:30
3104
原创 细谈promise
其实promise本身是一个同步立即执行的的函数,当执行resolve或者reject的时候,此时就是异步的,因此promise称为是异步编程的一种解决方案promise中的方法:Promise.all()需要传入一个数组,只有当数组里面的promise都成功的时候,他才会成功,如果失败的话,就返回一个失败,失败的原因是第一个改变promise状态的原因Promise.resolve()可以快速创建一个成功的promisePromise.reject()可以创建一个失败的promise项
2022-04-05 11:54:25
338
原创 在vuex中,不经过mutations能直接修改state中的数据吗?为什么
不经过mutations不能直接修改state中的数据,因为state是实时更新的,如果直接修改state中的数据是异步操作,当state异步还没有执行完,state的数据就有可能发生变化,会导致程序出问题,所以必须通过mutations限制state不允许异步操作...
2022-04-05 11:50:53
2268
1
翻译 Vue2 和vue3的区别
1、最大的改动就是vue2用的options api , vue3用的是composition api2、vue2是object.defineProperty,vue3是proxy实现数据的响应式3、全新的全家桶4、全新的ts支持5、vateOptions api 存在的问题就是,当组件越来越多的时候,可读性就会变差,比如找一个定义的方法要一直往下翻Component api 是把定义的数据和使用的数据的逻辑放在一起进行处理,以达到更加易读,更加方便扩展的目的Ref 、 reac
2022-04-05 11:46:50
2005
原创 token的处理
首先在用户点击登入的时候,将用户名和密码传给服务器,服务器去对用户名和密码进校验,验证通过将token返回给前端,前端拿到token后,将token存储到公共的状态管理工具中也就是vuex,然后再持久化到本地也就是存到localStrong中有了token后,我们就可以做很多的事情,比如说:1、在请求拦截器中我们可以把token统一注入到请求头中2、在进行页面跳转的时候,判断有无token,如果有就去对应的页面,如果没有就跳转到登录页3、判断token的失效,当toke...
2022-04-05 11:42:36
3892
原创 什么是BFC
了解bfc之前首先需要清除是css布局的一个概念,简称块及上下文格式化,是一个独立的渲染区域,bfc是属于普通流的怎样触发bfc 根元素 浮动元素 绝对定位元素(值为absolute或fixed) display overflow contain 多列容器作用 1、避免外边距重叠(用盒子进行包裹,通过overflow:hidden触发bfc)beforeafter 2、清除浮动(overf...
2022-04-04 21:30:23
232
原创 vue生命周期
vue的声明周期就是从vue的创建,初始化数据,编译模板,到挂载,到更新,最后销毁这一系列的过程就是vue的声明周期初始化挂载因为vue中写的是template模板,而不是真实的dom,所以vue会将template模板编译成虚拟dom,然后再替换成真实的dom,所以在(编译到挂载阶段会执行 挂载前和挂载后 两个钩子函数)而在执行两个钩子函数之前呢,会先判断有没有template选项如果有(编译template)作为渲染函数如果没有(就会根据el指...
2022-04-04 18:02:07
578
原创 render函数
想了解render函数首先需要知道虚拟domDom是文档对象模型的简写,在浏览器中通过js来操作Dom性能很差,于是虚拟Dom应运而生。虚拟Dom就是在js中模拟Dom对象树来优化Dom操作的一种技术或思路,它并不是真正意义上的Dom,对于未变化的Dom节点,不予操作,由于不是全部重绘,大大提高更新渲染性能。使用render函数描述虚拟Dom时,vue提供了一个函数,这个函数是构建虚拟Dom所需要的工具,叫做createElement,约定的简写叫h函数h函数 (创建虚拟Dom)h函数接
2022-04-04 17:22:04
1253
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人