自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用WeakMap、递归实现对象深拷贝。解决拷贝对象环引用爆栈问题

function checktype(obj){ //检查对象类型 return Object.prototype.toString.call(obj).slice(8,-1)}function depCopy(target,hash=new WeakMap()){ //hash 作为一个检查器,避免对象深拷贝中出现环引用,导致爆栈。 let type = checktype(......

2020-05-08 11:35:41 1741 5

原创 微信小程序在scroll-view标签内不能正常使用超过多行显示省略号

微信小程序在scroll-view标签内不能使用 display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp:2; overflow: hidden; word-break: break-all; text-overflow: ellipsis超过多行显示…原因是:s...

2020-04-28 14:07:54 1142 1

原创 微信小程序绘制自定义海报,可带二维码,头像,文字等

1、资源准备①海报背景图(建议放在不要放在本地)、②头像(需要授权)、③带参二维码、④需要自定义展示的文字、小的icon图片2、工具类,及方法①兼容屏幕大小的rpx转px的方法(手机屏幕有差异,canvas用的是px为单位) function createRpx2px() { const { windowWidth } = wx.getSystemInfoSync() ...

2019-12-11 14:10:07 3499

转载 indexOf与search的区别

1.indexOf方法indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到返回-1。语法:stringObject.indexOf(searchvalue,fromindex)说明:该方法将从头到尾地检索字符串stringObject,看它是否含有子串searchvalue。开始检索的位置在字符串的fromindex处。如果没有frominde...

2019-09-04 23:57:34 632

原创 正则表达式 match和exec

1 、match 和 exec 共同点1、当不使用全局匹配g的时候,两只都返回相同的格式 。检索字符串中指定的值。返回找到的值,并确定其位置。var str = 'shanghai nihao shanghainihao'var patt = /nihao/str.match(patt)str.match(patt)2、match 和 exec 区别1、它们最大的本质区别就是...

2019-09-04 23:47:56 354

原创 正则匹配 之环视(?=pattern)(?!pattern)等理解

1、环视首先需要了解 什么是环视:顾名思义 环视 就是环顾四周本质 :环视不匹配任何字符,只匹配文本中的特定位置环视 只进行子表达式的匹配,不占有字符,匹配到的内容不保存到最终的匹配结果,是零宽度的。环视匹配的最终结果就是一个位置。环视一共有四种:(?=pattern)、(?!pattern)、(?<=pattern)、(?<!pattern)逆序环视:(?<=pat...

2019-09-04 00:02:05 824

转载 如何用github的gh-pages分支展示自己的项目

1.先用npm安装 gh-pagesnpm install gh-pages --save-dev2.修改package.json文件3.修改config目录下的index.js build: { index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.re...

2019-03-14 21:45:15 1730

原创 Vue插件封装,以及插件发布到npm

1、常见插件类型 插件通常会为 Vue 添加全局功能,常见的几种如下添加全局方法或者属性,如: vue-custom-element添加全局资源:指令/过滤器/过渡等,如 vue-touch通过全局 mixin 方法添加一些组件选项,如: vue-router添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。一个库,提供自己的 API,同时提供上面提到的...

2019-03-11 13:55:19 1768

转载 Vue2.4中inheritAttrs $attrs和$listeners的使用-学习笔记

首先我们来看下面的一张图,图中表示一个多级组件嵌套的情形。现在我们来讨论一种情况,A组件与C组件怎么通信,我们有多少种解决方案?我们使用VueX来进行数据管理,但是如果项目中多个组件共享状态比较少,项目比较小,并且全局状态比较少,那使用VueX来实现该功能,并没有发挥出VueX的威力。 使用B来做中转站,当A组件需要把信息传给C组件时,B接受A组件的信息,然后利用属性传给C组件,这是...

2019-03-07 16:46:30 380

原创 vue源码分析nextTick()

1、vue页面更新简介在这里粗略的描述下当数据变化后页面更新流程:1、通过Observe数据劫持监听数据变化,当数据变化后通知触发闭包内的dep执行dep.notify,2 、接着执行Watcher的update()3、update()中并没有立即执行dom的更新,而是将更新事件推送到一个任务队列中。4、执行任务队列中的方法。下图是我对数据双向绑定的一个理解。这篇文章重点不是理解双...

2019-02-25 15:37:36 174

原创 正则表达式匹配方法 match() -- Vue正则解析template

最近看到vue源码的模板解析,parse 中主要就是用正则去解析template然后生成ast抽象树。这则匹配用到最多的就是match。match([string] | [RegExp])这里主要说正则表达式1、返回值:Array/null2、不使用g全局匹配时var str='2019shanghai=nihao !!'str.match(/\w[i]/)可以...

2019-02-21 11:23:01 23314

原创 针对移动端软键盘调用后,fixed定位失效部分解决方案

1、偷梁换柱。用absolute替换fixedjs获取屏幕高度,并把外部容器的高度设置为屏幕高度,给需要fixed的dom设置position:absolute。2、监测屏幕变化当点击输入框的时候弹出然键盘,会触发屏幕变化,一旦屏幕变小时将原来的fixed样式设置成其他的标准的流式布局。屏幕回到原来的大小时就恢复原来的fixed样式 var windowInnerHeight = ...

2018-07-12 16:55:30 2650 1

原创 js原型链的理解

   其实之前对js原型链有个基本的理解,但工作中用到的并不多,逐渐忘记了。所以准备写个博客。    我觉得首先得明白一个,就是每一次创建一个构造函数(其实就是普通的函数)的时候,都会根据一个特定的规则创建一个原型属性(prototype)。其中包括两项:construct和__proto__    其次先来看下构造函数创建对象:function Person(){ this.name='...

2018-03-23 16:57:24 269

原创 CSS之3D变换

CSS之3D变换:首先要理解3D和2D的区别,有什么特点,下面我先介绍下我对3D变换的理解:1、坐标系上3D是有3个坐标轴XYZ。2、同样的物体根据距离眼睛的距离不同看上去的效果会不一样的大小。3、从不同的角度看(上面,下面、左边等各个方位都会有不一样的效果接下来,我就一个旋转螺旋体作为例子来说下3D的变换。1、在上代码之前先简单说下旋3D变换所需要的结构:

2016-09-03 12:54:21 642

原创 CSS之display:inline、block、inline-block

CSS之display:inline、block、inline-block。html 行级标签 块级标签 行块

2016-08-31 14:21:54 668

空空如也

空空如也

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

TA关注的人

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