自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑客与画家

随意得不像实力派

  • 博客(58)
  • 收藏
  • 关注

转载 JS原型链的理解:最通熟易懂的文章没有之一!

前言看了很多原型链的文章,我感觉都云里雾里的。对刚学JS 的新手一点都不友好。今天我用最通熟易懂的方式重新归纳和整理,希望能帮助到大家创建一个实例使用构造函数创建一个实例function Star(age,name) { this.age = age this.name = name this.sing = function(){ console.log("我可以唱歌") }}let ldh = new Star(35,"刘德华")console

2021-03-14 10:26:13 165

转载 ES7:异步神器async-await(我看过讲得最清晰透彻的文章)

背景:关于异步处理,ES5的回调使我们陷入地狱,ES6的Promise使我们脱离魔障,终于、ES7的async-await带我们走向光明。今天就来学习一下 async-await。async-await和Promise的关系经常会看到有了 async-await、promise 还有必要学习吗、async await优于promise的几个特点,接收了这些信息后,就蒙圈了。现在才知道,asy...

2019-05-15 20:03:07 670

转载 ES6:Promise 用法(简洁透彻容易理解的文章)

ES6 Promise 先拉出来遛遛复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么玩意呢?是一个类?对象?数组?函数? 别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴。这么一看就明白了,Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上...

2019-05-06 14:43:30 307

原创 get fetch error: cannot lock ref ‘refs/remotes/origin/xxx‘: ‘refs/remotes/origin/wip‘ exists;cannot

git fetch 或 git pull 报错解决: get fetch error: cannot lock ref ‘refs/remotes/origin/xxx‘: ‘refs/remotes/origin/wip‘ exists;cannot create 导致分支拉不下拉

2023-09-04 17:55:44 2761

原创 1分钟教你从0-1搭建Monorepo多包项目

如何快速搭建一个monorep多包机制的项目

2023-06-25 10:53:49 4036

原创 vue3解决elementPlus table组件数据量大时的卡顿问题

根据产品需求,需要在弹窗中使用elementPlus的table组件。数据量少的时候没有问题,当数据条数超过30条时,会有卡顿现象。到这里基本就结束了,还有其他的一些细节就不再展示了,vue2逻辑也大差不差,如果有什么不懂的地方请留言,我会进行解答~绑定自定义指令后:在组件中使用: v-vTablescroll=“需要执行的分页逻辑函数” 此处用。刷新当前数据或者切换成搜索当前数据的时候会需要。是table 的内容滚动的类名,无需自定义。,因为组件本身没有提供监听滚动的事件;往往数据多的场景都会需要。

2022-10-22 13:40:32 15872 1

原创 uniapp微信小程序生成分享海报,进入页面就循环生成多张~

先看看整个案例成效的效果本案例是uniapp小程序,用到uview框架。需求描述:进入页面的时候循环生成多张,并以swiper的方式展示出来,以供使用。下面我们进入正题需要用到的插件:https://ext.dcloud.net.cn/plugin?id=1480可以到插件市场去下载和看使用教程,作者非常贴心,插件还提供了海报样式代码生成的工具,可以根据自己的需要布局样式生成相应的JSON样式,然后再稍微调整一下细节,简直不要太方便。自己去看和使用我就不多说了。生成海报页面代码&

2022-02-08 11:36:07 16856 1

转载 Git从其他分支merge个别文件/文件夹【一个值5万的小技巧】

小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发。项目背景产品经理:我们本次开发三个功能,列表页功能、详情页功能、系统消息功能,分两次上线,先上列表功能,再上详情页和系统消息。小明:好的吧(白眼)。紧接着,小明就将本次需求分为2个分支,分别为A、B。A:开发列表页功能B:开发详情页功能、系统消息功能原计划:产品经理说先上列表功能,那小明就先开发A分支,列表功能很快开发完成(厉害吧.

2021-10-09 11:29:37 9184

原创 解决npm报错:npm ERR! [email protected] postinstall: `node lib/install.js`

一、报错:报错截图:报错关键词:npm ERR! [email protected] postinstall: `node lib/install.js`二、原因:安装这些包时需要安装依赖包,其中部分依赖包需要从GitHub上下载,而GitHub的资源库DNS有问题,导致这些依赖包无法安装而报错。三、2种解决方案1、应该在命令后加参数 --ignore-scriptsnpm install --ignore-scripts2、在本地host文件中添加以下内容:( windows下,hos

2021-09-30 17:34:22 3989

原创 解决:uni.getMenuButtonBoundingClientRect();获取到的数据都为零的问题

出现场景:正常进入可以获取得到但是进入小程序之后,点击右上角,点击重新进入小程序就会出现获取都为0的情况console.log('oMenuBtn:',oMenuBtn);//打印 width:0,bottom:0,top:0,...代码是写在App.vue里面,启动后获取状态栏的高度并存到vuex中使用oMenuBtn = uni.getMenuButtonBoundingClientRect() console.log('oMenuBtn:',oMenuBtn); s

2021-09-27 18:21:29 5802

转载 怎样规范团队git commit ?(来自angular的commit规范)

前言Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。但是,一般来说,commit message 应该清晰明了,说明本次提交的目的。不过话说回来,作为最具个人创造力和最会利用工具的物种——程序猿,最好是能有规范和工具的约束。否者的话,你可能看到以下的commit message:目前,社区有多种 Commit message 的写法规范。本文介绍Angular 规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具。前前端框架Angular

2021-09-22 18:05:47 531

原创 git fetch 拉去远程仓库代码并合并到本地分支

//方法一$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master$ git log -p master.. origin/master//比较本地的仓库和远程参考的区别$ git merge origin/master//把远程下载下来的代码合并到本地仓库,远程的和本地的合并//方法二$ git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建

2021-09-16 21:59:26 1667

转载 git命令-分支相关操作(全)

1.何谓同步远程分支?有下面几种情况,1.本地有新分支,远程仓库没有。 2.远程仓库有新分支,本地没有。3.本地删除了分支,远程也想删除。4.远程删除了分支,本地也想删除。第一种情况很好解决,将本地分支推送到远程仓库即可。本文主要讲解后面几种情况的解决办法。2.第二种情况:远程仓库有新分支,本地没有。这在之前我先介绍几个命令。1.将某个远程主机的更新,全部取回本地:git fetch2.查看远程分支:git branch -a3.查看本地分..

2021-09-13 23:13:21 171

原创 一分钟带你搞清楚ts中 interface 和 type 的概念和用法(较全)

文章目录前言一、概念二、两者的异同1.相同点2.不同点总结前言提示:刚学习TS 的新手看到type 和 interface 会分不清楚什么场景下怎么使用,所以写一篇文章总结一下一、概念type : 类型别名概念:可以给一个或多个数据类型(string、number、…)取一个别名;举例:type dataType=number (给一个)type dataType=number | string | turpleinterface:接口概念:定义参数或方法的数据类型;二、两者的异

2021-09-03 18:07:53 16646 13

原创 vue 插槽的版本变化1.x-2.6.0-3.x(详细)

文章目录前言 一、具名插槽? 二、具名插槽的缩写 三、作用域插槽 五、总结前言很多没有注意vue版本更新的同学,看到slot=""的时候是明白的,当看到 template #xxx="",这时候就有点疑问了,还有vue3插槽到底什么样?;在 2.6.0 中,vue为具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令)。目前 slot 与 slot-scope 这两个特性暂时还未被移除。听说之后的 Vue 3.0 也会使用新语法,这并不是仅写法的不同,...

2021-09-01 11:23:33 314 6

转载 git merge和git rebase的区别及使用场景

1.git pullgit pull = git fetch + git merge FETCH_HEAD git pull --rebase = git fetch + git rebase FETCH_HEAD 2.merge 和 rebase现在我们有这样的两个分支,test和master,提交如下: D---E test / A---B---C---F--- master在master执行git merge test,然后会得到如下结果:

2021-08-23 10:51:41 233

原创 git分支的相关操作

一、Git本地创建新分支,并推送到远程1.本地创建分支并切换分支git checkout -b develop2. 将develop分支推送到远程git push origin develop:develop3. 建立本地至上游(远程)分支的链接,这样代码才能提交到远程git branch --set-upstream-to=orgin/develop4.取消对develop分支的跟踪(需要取消跟踪时才操作)git branch --unset-upstream

2021-08-23 09:58:18 209

原创 uniapp微信小程序登录(用promise.all改写)

微信小程序登录虽然简单但其业务逻辑很多新手还是模棱两可,所以可能会遇到偶发性登录失败,提示code过期等情况;在此之前,我希望大家先搞清楚一些基础的业务逻辑;帮大家复习一下:简单介绍其业务逻辑;小程序登录新规调整介绍(2021-4-28之后发布的小程序)【下面是官方规则哦】:传送门:小程序登录能力调整一、调整背景很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。二、

2021-08-18 23:00:28 1506 3

转载 git tag 打标签(我看过最透彻的文章)

打标签像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)。 在本节中,你将会学习如何列出已有的标签、如何创建和删除新的标签、以及不同类型的标签分别是什么。列出标签在 Git 中列出已有的标签非常简单,只需要输入 git tag (可带上可选的 -l 选项 --list):$ git tagv1.0v2.0这个命令以字母顺序列出标签,但是它们显示的顺序并不重要。你也可以按

2021-08-16 19:56:12 6590 1

原创 ios h5网页不支持js时间戳转换问题

之前将时间转换为时间戳一直使用的是var timestamp = (new Date('2021-07-28 18:00')).getTime();但是,前两天测试测出了bug,经排查发现是时间戳转换引起的,上面的方法在安卓设备上是可以使用的,但是在某些 iOS 上面不可以,会返回NaN,不知道是不是所有ios这样,至少我这边测的俩机型都这样找了一下原因,是兼容性问题ios的时间要使用2021/07/28 18:00格式,也就是把 “-” 改成 “/” ,这样IOS 和Android都可以,

2021-08-06 14:35:54 400

原创 如何在uni-app项目里使用tailwindcss,且兼容小程序(详细)

Hbuilder构建项目自由度比较低,我选择使用VScode构建uni-app不懂的请看这一篇文章:《如何用vscode构建uni-app项目》安装相关依赖:这是我项目的依赖给大家参考一下:安装tailwindcss本人安装的是兼容版的:详细安装请移步>>> tailwindcss官网-安装1.安装tailwindcss`npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcs

2021-05-26 19:11:45 22233 6

原创 用VScode搭建uni-app项目(较全)

cli工程全局安装vue-clinpm install -g @vue/cli通过cli创建uni-app项目 vue create -p dcloudio/uni-preset-vue uni-app选择项目模板,可自由选择如下图:创建uni-项目使用vscode打开创建的项目安装vue语法提示插件cli工程自带uni-app&5+app语法提示安装组件语法提示npm i @dcloudio/uni-helper-json从 git 下载 uni-app 代码块

2021-05-26 18:24:07 32381 4

原创 yarn : 无法加载文件...解决方案

前言:windows,用npm 安装 yarn 时 yarn安装成功,但执行yarn -v 时 报错如下:yarn : 无法加载文件C:\Users\dmj-jsb\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170 中的about_Execution_Policies。原因:window 安全机制,不执行不明脚本;详细可见:https://docs

2021-05-25 17:45:12 880

原创 npm install:Could not resolve dependency:peer... 原因和解决方案,长期更新npm相关错误问题!

前言最近一个后台管理项目中我集成了tailwindcss框架;在公司的电脑上npm install是没问题的,到家里的电脑npm install 就报错; 报错日志如下:# npm resolution error report2021-05-22T14:02:27.205ZWhile resolving: [email protected]: [email protected]_modules/postcss postcss@"^7.0.35" from the root project

2021-05-22 23:44:05 96216 17

原创 Vue依赖注入的详细用法,1分钟说清利弊

背景关于Vue组件的通讯方式相信大家能倒背如流父子组件:通过prop,$emit,【$root,$parent,$children】非父子组件:Vuex实现,父子层层传递、中央事务总线Bus,$ref子实例可以用 this.$parent 访问父实例,子实例被推入父实例的 $children 数组中。应当节制地使用它们,其只是作为访问组件的应急方法。更推荐用 props 和 events 实现父子组件通信.Vue官网建议,在正常情况下,这两种方式已经能满足绝大多数甚至所有的业务需求,对于应用程序代

2021-05-13 19:32:27 2713 2

原创 Vue父组件获取子组件methods函数的方法汇总

1. 父组件中获取子组件方法$children属性<template> <div> <v-header></v-header> <v-content></v-content> <v-footer></v-footer> </div></template><script> import vHeader

2021-05-13 19:20:23 1847

原创 Vue.use用法、原理、及源码解读:简单易懂

vue.use(plugin, arguments) 语法参数:plugin(Function | Object)用法:如果vue安装的组件类型必须为Function或者是Object如果是个对象,必须提供install方法如果是一个函数,会被直接当作install函数执行install函数接受参数,默认第一个参数为Vue,其后参数为注册组件时传入的arguments组件.js export const testObj = { install(Vue, arg) {

2021-05-10 16:49:05 258

原创 uni-app/vue css实现商城分类页面选项卡选中时,右上左下是圆弧过度的选中样式

vue css实现商城分类页面选项卡选中时,右上左下是圆弧过度的选中样式:如图html部分<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop" :scroll-into-view="itemId"> <view v-for="(item,index) in cateRes" :key="index" class="

2021-05-07 23:02:29 572

原创 uniapp scroll-view组件滚动到后点击按钮回到组件顶部方法

前言uniapp scroll-view组件滚动到底后点击按钮回到组件顶部方法官方文档设置 this.scrollTop=0的方法无效,在网上找了个这个方法。不知道是什么原理this.scrollTop = Math.random(); <view class="bottom-tips" @click="goTop" id="gototop">没有更多菜单了哦~ </view> goTop: function (e) { this.scrollTo

2021-04-04 19:04:10 997 1

原创 uni-app微信小程序爬坑-父组件给子组件传值并绑定到子组件:style以及图片路径问题

**前言uni-app开发小程序油时候兼容性真的是千奇百怪今天自己封装了一个无信息占位组件,组件源代码如下:第一个问题请看注释<template> <view class="no-tips flex-c-c"> <image :src="imgSrc" :style="[imgStyle]"></image> //这里的imgStyle传过来的是一个对象,如果是这样用: //<image :src="imgSrc" :style=

2021-03-26 23:35:48 1139

原创 Vue.set()和this.$set()的区别和联系,什么场景该用哪一个,清晰明了

之前了解这个方法的时候,感觉这一辈子也用不到这个方法,因为当时没有应用场景,但是还真有用的时候????,我相信你们也有用到时候。从三个方面给大家说一下这个this.set:1.this.set:1.this.set:1.this.set实现什么功能,为什么要用它?2.怎么用它?3.应用场景1.this.set实现什么功能,为什么要用它?当你发现你给对象加了一个属性,在控制台能打印出来,但是却没有更新到视图上时,也许这个时候就需要用到this.set实现什么功能,为什么要用它?当你发现你给对象加了

2021-03-20 11:21:50 1016

原创 uni-app:封装自己的request请求

前言在开发中由于域名会经常变化,或者对借口和返回状态统一管理,这时候需要对uni的request进行二次封装const BASE_URL='https://....'export const myRequest=(option)=>{ return new Promise((resolve,reject)=>{ uni.request({ url:BASE_URL+options.url, method:option.method||'GET', data:opti

2021-03-14 23:08:59 129

原创 Hbuilder开发:windows端 Android第三方模拟器-夜神,安装和使用,长期更新问题

前言:Hbuilder开发安卓端系统需要试试调试,一直看手机的话会影响我们的开发效率,避免不了要安装一个模拟器;一开始我是用Dcloud推荐的安装JDK和SDK的方法,安装了,但是打开一直是未响应状态,可能是电脑的原因吧(原地爆炸)所以试试用第三方模拟器;不知道开发中会不会好用,如果遇到什么问题我会一直再此贴更新,敬请关注;这里我以很多人推荐的:夜神模拟器第一步:安装夜神,太简单了,省略第二步,需要Hbuilder连接夜神的端口:(一般是62001);保险起见,我们还..

2021-03-13 19:06:15 564

转载 ES6-ES12新特性:简约明了、长期更新

sd

2021-03-10 23:26:06 2579 2

原创 vue路由传参:最常用三种方式,通俗易懂!

前言项目中很多情况下都需要进行路由之间的传值,想过很多种方式sessionstorage/localstorage/cookie 进行离线缓存存储也可以,用vuex也可以,不过有些大材小用吧,不管怎么说因场景而异下面我来说下vue自带的路由传参的三种基本方式先有如下场景 点击当前页的某个按钮跳转到另外一个页面去,并将某个值带过去<div class="examine" @click="insurance(2)">查看详情</div>第一种方法 :页面刷新数据不会丢失m

2021-03-02 12:13:45 690 4

转载 js面向对象编程一:封装

js是面向对象编程的语言,既是它的函数,数组,属性都是对象,可以设置对象的属性和方法。一.生成对象的原始模式假定把猫看成一个对象,它有name和color两个属性.var cat = { name:'', color:'' } 现在,我们需要根据这个原型对象的规格,生成两个实例对象. var cat1 = {...

2019-05-16 16:02:24 174

原创 微信小程序:获取设备信息、窗口或元素高度

小程序中获取高度以及设备的方法wx.getSystemInfoSync().windowWidth // 获取当前窗口的宽度wx.getSystemInfoSync().windowHeight // 获取当前窗口的高度wx.getSystemInfoSync().model // 获取当前采用的设备wx.getSystemInfoSync().pixelRatiowx....

2019-04-11 17:51:27 2463

原创 JS判断设备是PC端还是手机端

if(/Android|webOS|iPhone|iPod|BlackBerry|iPad|SymbianOS/i.test(navigator.userAgent)) {console.log(‘mobile’)} else {console.log(‘pc’)}

2018-12-11 10:24:27 317 1

原创 vue爬坑之vue路由传参的三种基本方式

现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据。父组件中:&lt;li v-for="article in articles" @click="getDescribe(article.id)"&gt;methods:方案一: getDescribe(id) {// 直接调用$router.push 实现携带参数的跳转 ...

2018-12-09 16:46:02 234

原创 vue爬坑之vux-scroller实现上拉加载下拉刷新

虽然vux官方已经说明scroller不再维护,但是基本上能满足我们的使用场景。1.我装了mock.js来模拟加载数据,所以没有装mock的同学可以先装一下mock很方便的数据模拟工具:http://mockjs.com/2.我装了stylus 语法相当自由,同僚们可以装一下,记得装stylus-loader;3.这个组件是居于vux的,没有用vux框架的可以去了解一下集成了...

2018-12-05 10:02:01 5752 1

空空如也

空空如也

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

TA关注的人

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