自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 link和@import的区别:

import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。版权声明:本文为CSDN博主「依然爱我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。加载页面时,link标签引入的 CSS 被同时加载;以上就是link和@import的区别有哪些的详细内容。4、DOM可控性区别。

2022-09-22 16:07:27 136 1

原创 vue生命周期

【代码】vue生命周期。

2022-09-19 18:50:07 520

原创 vue 2中数组中的某个对象的属性发生变化,视图不更新如何解决?

Object.defineProperty 无法监控到数组下标的变化,导致直接通过数组的下标给数组设置值,不能实施响应。this.$set()解决。方案二:就利用 Object.assign({},this.obj)创建新对象。方案一:利用 this.set(this.obj,key,val)如果是对象就 Object.assign({},this.obj)。如果是数组就 Object.assign([],this.obj)例:this.set(this.obj,‘k1’,‘v1’)

2022-09-19 18:46:26 1366

原创 vue3的Proxy 相比于 vue2的defineProperty 的优势

② Object.defineProperty 只能劫持对象的属性,因此我们需要对每个对象的每个属性进行遍历。Vue2.X 里,是通过递归 + 遍历 data 对象来实现对数据的监控的,如果属性值也是对象那么需要深度遍历,显然如果能劫持一个完整的对象才是更好的选择。使用Proxy 的好处是它可以完美的监听到任何方式的数据改变,唯一的缺点是兼容性的问题,因为 Proxy 是 ES6 的语法。Proxy 是 ES6 新增的一个属性,翻译过来的意思就是代理,用在这里表示由它来“代理”某些操作。

2022-09-19 18:45:29 1046

原创 vue双向数据绑定原理?

3、 订阅者 watcher : Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是 负责数据监听,当数据发生改变,能调用自身的update()方法,并触发Compile中绑定的更新函数。是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调从而达到数据和视图同步。( 如有变动可拿到最新值并通知订阅者 )一旦数据有变动,收到通知,更新视图。

2022-09-19 18:44:43 241

转载 Vue组件间通信的8种方式

(仅限于父子组件之间,不推荐使用,因为不利于维护,一旦组件层次发生了变化,就需要更改其中的层次关系)需要注意边界,最外层的#app 的$parent得到的是Vue实例,在Vue实例上再去取$parent 就是undefined了。缺陷:传递的数据不是响应式的,inject接收到数据后,provide中的数据改变,但是后代组件中的数据不会改变。父组件传入属性,子组件通过props来接收,在子组件中就可以用this.xxx方式使用。通过引用的方式获取子节点,常用于父组件中调用子组件的方法或者获取子组件的属性。

2022-09-19 11:57:41 132

原创 ==操作符的强制类型转换规则

如果两个操作值都是对象,则比较它们是不是指向同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回 false。其他值和它们进行比较都返回假值。如果一个操作值为 NaN ,则相等比较返回 false( NaN 本身也不等于 NaN )。对象和非对象之间的相等比较,对象先调用 ToPrimitive 抽象操作后,再进行比较。其他类型和布尔类型之间的相等比较,先将布尔值转换为数字后,再应用其他规则进行比较。字符串和数字之间的相等比较,将字符串转换为数字之后再进行比较。

2022-09-18 15:34:35 252

原创 虚拟dom理解

当组件受响应式数据变化的影响,需要重新渲染,就会重新调用render函数,生成一个新的虚拟dom树,然后用新的虚拟dom树跟旧的虚拟dom树做比较,通过对比,vue会找到最小更新量,然后更新必要的虚拟dom节点,最后,这些更新过的虚拟dom节点,会去修改它们对应的真实dom,这样一来,就保证了真实dom的达到了最小的改动。每个组件实例首次被渲染时,首先会生成虚拟dom树,然后根据虚拟dom树创建真实dom,再把真实dom挂载到页面合适的地方,此时,每个虚拟dom树对应一个真实dom。

2022-09-18 15:33:52 288 4

原创 ClassNames

(1)传入一个对象:classnames({class1:true,class2:false}) ,true表示相应的class生效,反之false表示不生效。(2)接受多个类名:classnames(class1,class2,{ class3:false })1.引入classnames: import classnames from classnames。1.在react中想要动态添加className时,通常会使用classnames这个库。

2022-09-17 16:36:23 2620

原创 常用的js库:

flv.js bilibili 开源的 html5 flash 视频播放器,使浏览器在不借助 flash 插件的情况下可以播放 flv,目前主流的直播、点播解决方案。可以与CSS3属性、SVG、DOM元素、JS对象一起工作,制作出各种高性能、平滑过渡的动画效果。Animate.css 一个跨浏览器的 css3 动画库,内置了很多典型的 css3 动画,兼容性好,使用方便。js-cookie 一个简单的、轻量的处理 cookies 的 js API。

2022-09-17 16:33:36 91

原创 介绍一下websocket

websocket 是一种网络通信协议,是HTML5 开始提供的一种在单个 TCP 连接上进行全双工通信的协议,这个对比着 http 协议来说,http 协议是一种无状态的、无连接的、单向的应用层协议,通信请求只能由客户端发起,服务端对请求做出应答处理。http 协议无法实现服务器主动向客户端发起消息,Websocket 连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的连接将数据推送到另一端。WebSocket 只需要建立一次连接,就可以一直保持连接状态。

2022-09-17 16:32:42 441

原创 防抖和节流的概念?

在第一次触发了setTimeout后,先把阀门关闭(使用一个Boolean变量),等执行完后再把阀门打开,这样后面的setTimeou在触发前会先判断阀门是否关闭,如果关闭了则不会继续触发,要等之前的setTimout执行完后,才允许触发后面的setTimeout,简单地理解就是:一群人排队体检,第一个人进去一个房间体检,要把门关上,要等这个人体检完,再把门打开,下一个才可以进去。(就是在触发某个事件后,在下一次触发之前,中间的间隔时间如果超过设置的时间才会发送请求,一直触发就不会发送请求)

2022-09-17 16:29:46 190

原创 递归的原理?

因为在没有限制的情况下会进行无终止的自身调用,所以需要结合if判断语句进行使用控制,只有某个条件允许才会执行递归,否则不允许调用自身。先一层一层往下走,走到不满足条件时候开始return,赋值计算,最后return出结果。使用时候要注意两个部分:1递归调用的过程 2.递归终止的条件(出口)就是函数自己调用自己。是循环运算的一种算法模式。

2022-09-17 16:26:24 110

原创 call apply bind的区别?

三者最大的区别是call和apply会改变this的指向并且立即执行函数,但是bind方法不会立即执行函数,而是会返回this改变后的函数。call和apply的区别:两个函数都是改变函数执行上下文的,但是传的参数不同, apply需要传入第二个为数组传参。bind和其他两个差别在:传参与call相同,但是bind会返回一个新的函数。

2022-09-17 16:24:07 59

原创 浅拷贝和深拷贝方法

浅拷贝 : 只是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据的中的对象数据。可以转成Json格式的对象才能使用这种方法,如果对象中包含function或RegExp这些就不能用这种方法了。用Json.stringify把对象转换成字符串,再用Json.parse把字符串转换成新的对象。深拷贝: 将数据中所有的数据拷贝下来,对拷贝之后的数据进行修改不会影响到原数据。3、函数库lodash的_.cloneDeep方法。

2022-09-17 16:19:56 124

原创 浏览器输入地址后的请求过程

浏览器输入地址后的请求过程

2022-09-17 16:05:02 235

原创 强缓存和协商缓存

浏览器直接对本地的缓存文件过期,但是会带上If-Modifed-Since,If-None-Match,这就意味着服务器会对文件检查新鲜度,返回结果可能是304,也有可能是200.浏览器不仅会对本地文件过期,而且不会带上 If-Modifed-Since,If-None-Match,相当于之前从来没有请求过,返回结果是200.浏览器发起请求,按照正常流程,本地检查是否过期,然后服务器检查新鲜度,最后返回内容。,决定是否缓存结果,是----则将请求结果和缓存标识存入浏览器缓存中。

2022-09-17 15:53:34 374

原创 vue slot插槽的使用

slot>可以作为承载分发内容的出口。具体来说就是在组件内添加内容的‘空间’。插槽显不显示、怎样显示是由父组件来控制的,而插槽在哪里显示就由子组件来进行控制。

2022-09-17 15:13:23 1243

原创 react 中 antd 按钮改更改颜色

在react中修改antd的按钮背景色。

2022-08-12 17:37:24 4213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除