自定义博客皮肤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)
  • 收藏
  • 关注

原创 H5 新增特性和 C3 新增特性

H5 新增特性和 C3 新增特性

2022-08-31 17:14:43 198 1

原创 标签语义化的意义是什么

标签语义化 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。

2022-08-31 17:12:30 370

原创 display:none 和 visibility:hidden 的区别

display:none 和 visibility:hidden 的区别

2022-08-31 17:10:51 464

原创 什么是优雅降级和渐进增强

优雅降级和渐进增强

2022-08-31 17:09:12 124

原创 什么 bfc 机制

BFC(block formatting context):块级格式化上下文 CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。

2022-08-31 17:06:19 138

原创 盒子塌陷的原因?解决方式

盒子塌陷的原因?解决方式

2022-08-31 17:01:21 224

原创 什么是标准盒子,什么是非标准盒子

什么是标准盒子,什么是非标准盒子

2022-08-31 16:59:19 174

原创 $nextTick 的原理和使用的场景

1.使用原理1) vue是异步执行dom更新的,一旦观察到数据变化,vue就会开启一个队列,然后把在同一事件循环当中观察到数据变化的watcher推送进这个队列,如果这个watcher被触发多次,只会被推送到队列一次,这种缓冲行为可以有效的去掉重复数据造成的不必要的计算和dom操作,这样可以提高渲染效率。2) 如果要获取更新后的dom元素,可以使用vue内置的$nextTick方法,参数是一个函数。它的作用类似setTimeout,进行执行异步的操作。2.应用vue中的nextTick主要用于处理数

2020-12-03 08:24:09 14982 1

原创 对闭包的理解?并能举出闭包的例子

闭包 :函数和声明该函数的词法环境的组合(两个嵌套关系的函数,内部函数可以访问外部函数定义的变量)闭包的优点:1、形成私有空间,避免全局变量的污染2、持久化内存,保存数据闭包的缺点:1、持久化内存,导致内存泄露解决:1、尽快避免函数的嵌套,以及变量的引用2、执行完的变量,可以赋值null,让垃圾回收机制,进行回收释放内存(当不在引用的变量,垃圾回收机制就会回收)例: 点击li获取当前下标 <ul> <li>111</li>

2020-11-27 14:40:32 209

原创 localStorage、sessionStorage和cookie的区别详解

共同点: 都是保存在浏览器端,且同源的。区别:1. 请求不同:cookie 数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。 sessionStorage 和 localStorage不会自动把数据发给服务器,仅在本地保存。2. 存储大小限制也不同:cookie 数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage 和 localStorage虽然也有存储大

2020-11-25 11:08:04 129

原创 es6-es10新增常用方法

es6:1、let、const2、解构赋值 let { a, b } = { a: 1, b: 2 }3、箭头函数4、字符串模板5、扩展运算符6、数组方法:map、filter等等7、类:class关键字8、promise9、函数参数默认值 fn(a = 1) {}10、对象属性简写 let a = 1; let obj = {a}11、模块化:import–引入、exprot default–导出es7:1、includes()方法,用来判断一个数组是否包含一个指定的值,根据情

2020-11-25 11:01:11 245

原创 C3新增了那些特性

圆角 border-radius盒子模型 box-sizing阴影 box-shadow 盒子阴影 text-shadow 文字阴影过渡 transition2D转换transform translate(平移) scale(缩放) skew(斜切) rotate(旋转) transform-origin 控制转换中心点3D转换 perspective(透视距) transform-style(3D控件效果)渐变 linear-gradient radial-gradient弹性布局.

2020-11-25 10:57:07 224

原创 H5新增了那些特性

语义化标签: header nav section article aside footer多媒体标签: video audio表单控件: number search email tel date file time url本地离线存储 localStorage 长期存储数据,改变浏览器数据不会丢失sessionStorage 浏览器关闭数据会丢失自定义属性 data-*画布 Canvas拖拽释放 (Drap and Drap) API ondrop新的技术文本 webworker地理.

2020-11-25 10:56:30 328

原创 vue 中怎么给 data 动态添加数据,为什么要这样写

1.官方文档定义:如果在vue实例创建之后添加新的属性到实例上,她不会触发视图更新。2.原因:受现代JavaScript的限制,vue不能检测到对象属性的添加或删除。由于vue会在初始化实例是对属性执行getter/setter转换过程(使用Object.defineProperty进行数据的劫持)。所以属性必须在data对象上存在才能让vue转换它,这样才能让它是响应的。方法:1.this.$set(对象名,属性,值)或 Vue.set(对象名,属性,值) 2.Object.ass

2020-11-25 10:54:30 3268

原创 router 和 route 的区别

router是VueRouter的实例,是一个全局的路由对象,它包含了所有的路由和许多关键的对象和属性。route是当前正在跳转的路由对象,是一个局部路由对象。里面包含当前路由的信息,比如:name,path,params,query等...

2020-11-25 10:53:02 694

原创 keep-alive的理解

1、keep-alive是Vue.js的一个内置组件。vuevue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗。2、它有两个生命周期:activated: keep-alive组件激活时调用deactivated: keep-alive组件停用时调用它提供了include与exclude两个属性,允许组件有条件地进行缓存3、示例:<!-- keep-alive代码可以结合v-if进行包裹,如果meta中的keepAlive为true进行缓存,否

2020-11-24 18:56:52 502

原创 导航钩子有几种(导航守卫)具体怎么用的

分类:1、全局守卫: router.beforeEach2、全局解析守卫: router.beforeResolve3、全局后置钩子: router.afterEach4、路由独享的守卫: beforeEnter5、组件内的守卫: beforeRouteEnter、beforeRouteUpdate (2.2 新增)、beforeRouteLeave使用:1、全局守卫: router.beforeEach const router = new VueRouter({ ... })

2020-11-24 18:54:31 569

原创 怎么理解函数的防抖和节流

防抖: 就是指触发事件后在n秒内函数只能执行一次,如果在n秒内又触发了事件,则会重新计算函数执行时间。例如:设定1000毫秒执行,当你触发事件了,他会1000毫秒后执行,但是在还剩500毫秒的时候你又触发了事件,那就会重新开始1000毫秒之后再执行<body> <input type="text" class="ipt" /> <script> var timerId = null document.querySelector(

2020-11-20 20:51:07 217

原创 ES5/ES6数组的使用和方法

1、forEach()1)定义:forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组。2)参数:value -- 当前索引的值 index -- 索引 array -- 原数组let arr = [1,2,3]arr.forEach((value,index,array)=>{ console.log(value,index,array)})2、map()1)定义:遍历(映射)数组,会返回一个新数组

2020-11-19 16:06:07 124

原创 v-for中为什么要加key,原理是什么

原理:1. vue实现了一套虚拟dom,使我们可以不直接操作dom元素,只操作数据就可以重新渲染页面,而隐藏在背后的原理是高效的Diff算法2. 当页面数据发生改变,Diff算法只会比较同一层级的节点3. 如果节点类型不同,直接干掉前面的节点,再创建并添加新的节点,不会再比较这个节点后面的子节点如果节点类型相同,则会重新设置该节点的属性,从而实现节点的更新4. 使用key给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,"就地更新"找到正确的位置区插入新的节点作用:1. 高效的更新

2020-11-19 15:52:08 613

原创 computed 和 watch的区别

概念上computed 是计算属性,它会根据所依赖的数据动态显示新的计算结果,通过计算出来的属性不需要调用,可以直接在DOM中使用watch 是监视对象,对象的键是data对应的数据,值是对应的回调函数或者对象,当data的数据发生变化,会执行对应的回调函数,函数有两个参数,val(更新后的data数据),oldval(原来的data数据),deep属性可以实现深度监听缓存上**computed 具有缓存属性 只有依赖的数据发生变化,才会重新计算,否则直接调用缓存,watch 每次监听的值发生变化

2020-11-19 15:50:57 170

原创 promise的方法有哪些,能说明其作用

1、Promise.prototype.then()1)作用是为 Promise 实例添加状态改变时的回调函数。接受两个回调函数作为参数。第一个回调函数是Promise对象的状态变为resolved时调用,第二个回调函数是Promise对象的状态变为rejected时调用。其中,第二个函数是可选的,不一定要提供。2)返回的是另一个Promise对象,后面还可以接着调用then方法。2、Promise.prototype.catch()1)用于指定发生错误时的回调函数。2)返回的也是一个 Promi

2020-11-19 09:28:55 3980

原创 MVC和MVVM的区别详解

MVVM 模型-视图-视图模型M Model 模型 指的是数据层V View 视图 指的是用户页面VM ViewModel 视图模型视图模型是MVVM模式的核心,它是连接view和model的桥梁,MVVM实现了view和model的自动同步,当model属性改变时,我们不用自己手动操作dom元素,来改变view的显示,反之亦然,我们称之为数据的双向绑定MVC 模型-视图-控制器M Model 模型 指的是数据层V View 视图 指的是用户页面C Controller 控

2020-11-18 20:21:10 113

原创 库和框架的区别详解

库和框架的区别库:本质上是函数的集合,每一次调用函数,实现一个特定的功能,使用库的时候,把库当成工具使用,需要自己控制代码的执行逻辑.框架:是一套完整的解决方案,使用框架的时候,框架实现了大部分功能,我们只要按照框架的规则书写代码即可,使用框架开发要比库开发效率更高,更容易维护...

2020-11-18 20:15:44 293

空空如也

空空如也

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

TA关注的人

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