自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 css面试题

1.盒子模型的组成:margin,border,padding,content 1.1标准盒子: content的宽不包含border+padding 1.2怪异盒子:content的宽包含 border+padding2.flex布局: flex 主要分为主轴和侧轴,同一样的叫法有行和列,x轴和y轴 flex-direction:row 按行排列,column 按列排列 默认的情况下式row 3.justify-content设置主轴上的子元素排列方式3. flex-wrap

2023-10-13 13:21:30 76

原创 react的性能优化

memo 缓存组件,只有组件内部的state或props发生改变后组件才会更新。1.shouldcompontUpdate 需要配合不可变值。memo和usememo,usecallback的区别。3.缓存组件 usememo usecallback。2.懒加载 lazy(()=>import())usecallback 存的是函数无任何依赖。usememo 存的是数据可以依赖参数。

2023-10-10 23:04:23 70

原创 面向对像的三大特性

封装:把属性和方法封装到一个类中,可以称之为封装的过程; 继承:继承可以帮助我们将重复的代码和逻辑抽取到父类中,子类只需要直接继承过来使用即可; 多态:不同的对象在执行时表现出不同的形态;

2023-10-10 22:09:27 73

原创 js继承的实现

5.class继承 extends 实现继承需要在自己构造函数中使用super给父级构造函数属性赋值。1.1重点时子集的原型 强行被赋值 父级构造函数生成的实力。o是个对像,他的构造函数中的属性和原型原型连上的都被继承。构造函数继承只能继承构造函数中的属性。6.寄生式继承(原型式继承和工厂模式)

2023-10-10 22:01:12 60

原创 前端缓存部分理解

第一次向服务器请求数据的时候如果respone heard 中存在expires,cache-control 代表这是强缓存,浏览器就会把资源存在memory cache 或disk cache。2.协商缓存:就是缓存失效后,request heard中携带 If-Modified-Since & If-None-Match 用来判断是否符合协商缓存是就返回304继续使用,不是就返回新的内容。1.强制缓存:当我访问url的时候,不会向服务器发送请求,直接从缓存中获取,但是会返回200状态码。

2023-10-08 16:42:26 33 1

原创 vite+ ts + vue3 +eslint + prettier

【代码】vite+ ts + vue3 +eslint + prettier。

2023-05-03 17:46:37 105

原创 webapck 文章转发

(1)webpack介绍_泽哥ins的博客-CSDN博客

2023-05-03 00:53:22 45

原创 v-if 和v-for那个优先级高

vue2的时候v-for的优先级高于v-if 如果两个放在一起,是先执行循环再执行判断,哪怕只渲染很小一部分,也得在每次重渲染的时候遍历整个列表,浪费性能。vue3的解决方案时在需要循环的地方添加一个template标签 此标签上循环,在真实的标签上判断。vue3中 v-if的优先级高于v-for 所以会直接报错 无法使用。vue2使用计算属性进行解决。

2023-04-19 22:59:48 44

原创 vue2中的通信方式

ref在vue2是用来注册dom或子组件的引用信息的,引用信息将会被注册到父级的$refs对象上面。在mian 里面创建空的vue对象作为全局总线,事件总线,同时,将其绑定在vue原型上。触发定义在父组件里面的自定义事件,他可以传两个值,第一个是自定义事件名,第二个是要传递的值。组件A this.$parent.on('add',this.add)$attrs可以接受除了props里面的接受的传递值以外的所有值。$listeners可以接受到父级穿过来的所有事件。父组件在调用子组件的时候通过字面量传递。

2023-04-19 21:11:19 79

原创 vue2和vue3的自定义指令钩子函数

componentUpdated 指令所在组件的 VNode。update 所在组件的 VNode 更新时调用。unbind 只调用一次,指令与元素解绑时调用。inserted 被绑定元素插入父节点时调用。构造函数 bind 指令第一次绑定到元素时调用。

2023-04-19 16:12:03 180

原创 vue2和vue3的差异

vue 3 使用了Proxy 劫持了对象的数据属性变换,当属发生改变的时候 set捕获器会触,当属发删除的时候会触发deleteproperty捕获,从而触发页面渲染,onBeforeUpdate获取的是更新之前的DOM,onUpdated获取的是更新之后的DOM。vue2 组件中的顶层 templete 下不允许有多个节点,都是通过一个大的div进行包裹。简单的来说,就是子组件中有多个一个加载的时候需要所有的异步加载完成后才会展示整个内容。同时也通过这两个捕获器解决了 vue2中的两个缺点。

2023-04-19 11:55:11 73

原创 v-mode 双向绑定原理

下面是实现diff的基本流程(1遍历新旧dom树,2 如果节点不同直接替换3.如何节点相同再比较节点属性是否有变化,如果有变化就更新节点属性 4如果节点有新的子节的递归执行1-3 5.如果旧的dom有子节,新dom 没有子节点 则需要删除子节点,6 如果旧的dom没有子几点,新的dom有字节的旧需要点击子节点。vue3中的响应式式通过es6提供的api Proxy代理来实习的,他拦截的是整个对象的所有属性变化,当数据发生改变的时候,Proxy的set捕获器会被触发,从而触发页面渲染。

2023-04-18 21:22:59 127

原创 vue2和vue3实现响应的原理

当数据发生改变的时候会触发对应的setter 方法,从而触发页面渲染流程(为什么vue2 的data 是一个方法而不直接定义成一个对象?vue3:实现响应式的核心api 是 es6提供 Proxy api vue 通过这个api 可以拦截对象中任意属性的变化,当数据发生改变的时候 Proxy的set捕获器会被调用,从而触发页面渲染。2.无法监听原始数组,需要特殊处理(如push,pop, shift,unshift)v3:Proxy 监听的式整个对象中所有属性的变化,因此可以监听到新增,和删除属性。

2023-04-17 22:21:04 94

原创 vue 高级特性

vue中默认的v-model 只接受value属性和响应input事件,如果想改变这个特性,需要引入model这个属性model有两个属性:prop:代替原来的value值event:代替原来的input事件使用$eimt向上派发事件的时候要与model.event中的值对应因此我们可以model这个属性在自己定义的组件中实现v-model代码实现vue中v-model的实现_vue 实现v-model_djtwebblog的博客-CSDN博客。

2023-04-09 11:47:02 200 1

原创 vue中v-model的实现

vue中v-model的实现

2022-11-09 10:48:22 506

转载 ip段正则表达式

​​​​​​​https://www.cnblogs.com/zhaopanpan/p/10361175.html

2022-11-08 14:43:45 671

原创 js中的this的指向

this 的应用场景 1. 作为普通方法被调用 2. 使用call apply bind 被调用 3. 作为对象方法被调用 4.在class 中被调用 5. 箭头函数中被调用this 的指向是在执行的时候决定的不是在定义时觉得的即:谁调用指向谁,除了构造函数和箭头函数,构造函数的this指向实例,箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值。任何方法都改变不了其指向call apply bi...

2022-11-04 17:34:26 48

原创 手写简易的apply

简易的apply

2022-11-02 17:45:13 57

原创 手写简易call方法

手写简易call

2022-11-02 17:35:43 47

原创 手写js中的bind方法

手写bind方法

2022-11-02 16:29:54 90

原创 手写简易juqery

简易的jquery 实现

2022-10-27 11:45:04 156

原创 闭包与作用域

js的作用域: 全局作用域,函数作用域 , 块级作用域(es6),作用域链, 自由变量全局作用域: 全局作用域指的是在全局起作用的作用域函数作用域:函数作用域指的是在函数中起作用的作用域块级作用域:块级作用域指在{}里面的作用域自由变量:使用的变量在当前作用域里面没有声明。作用域链:使用的变量在当前作用域里面没有声明向上父级作用域查找形成的链式结构闭包:因为函数作用域的原因,函数外部是无法访问函数内部的变量的,因此我们设置了一个函数,可以使外部访问函数作用域里面的变量,我们把这个设.

2021-08-05 07:29:50 54

原创 原型,原型链 和instanceof

每一个class 都有一个显示原型 prototype 属性。每一个对象都有一个隐式原型_proto_属性。每一个对象的隐示原型都指向对象class 的显示原型列如:class Student { constructor(name){ this.name = name; } studentName(){ console.log(`studentName:${this.name}`); }}const zhangs

2021-07-25 23:15:00 103

原创 前端基础知识体系总结(1)

1.w3标准2.ecma2623.开发环境4.运行环境5. js 基础: 变量类型和计算 原型和原型链 作用域和闭包 异步和模块化js-web-api:dom bom 事件 存储开发环境: git webpack lable linux运行环境:页面加载 性能优化 安全变量类型和计算: 1. 值类型 和引用类型 2. typeof 能判断那些类型 3. 隐式类型转换值类型:将数据直接赋给变量引用类型:将数据的堆内存地址赋给...

2021-07-25 00:44:21 81

空空如也

空空如也

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

TA关注的人

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