自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(173)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Windows】使用Nexus搭建npm私库,管理npm包,并在项目中下载

官网下载地址,进去后直接下载window系统的,需要挂VPN。打开浏览器输入localhost:8081/即可访问(如果无法访问,输入127.0.0.1:8081/,或者使用本机ip地址+8081端口号)。首次使用点击右上角Sign in。点击后,会提示用户名为admin,密码就在提示的文件内,登录成功后根据提示修改密码。创建仓库,一共有3种类型。Name可以自定义填写,hosted要改成allow redeploy,这样才能运行重复上传一个包,不然会报400:bad request。点击 Cre

2022-06-06 16:52:27 4407 2

原创 uni-app 使用uni.navigateBack()返回时传递参数

假设从B页面返回A页面:// B页面const pages = getCurrentPages();const prevPage = pages[pages.length - 2];const params = {a: 1}; // 携带的参数prevPage.$vm.sendValue(params); // sendValue是A页面自定义的方法// A页面sendValue(params) { // 接收参数}...

2022-04-02 15:31:14 1309

原创 elementUI input获取光标位置

<el-input ref="inputRef" v-model="value" type="textarea" @blur="inputBlur"/>inputBlur() { this.textCursor = this.$refs.inputRef.$el.children[0].selectionStart;}

2022-04-02 15:10:32 2917

原创 解决高版本npm(7.20.0)在install时候报错的问题

Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-pe今天在执行npm i的时候报了以上错误报错原因是:使用的npm版本是7.20.0,npm7对peerDependencies要求严格,npm6允许通过的部分不再允许通过。解决方法:使用以下两个参数忽略,或者直接继续使用npm6。npm install --legacy-peer-deps npm in

2021-08-27 11:15:05 2519

原创 elementUI select远程搜索分页,实现滚动条下拉分页

//template<el-select v-model="form.userCode" v-el-select-loadmore="loadmore" filterable remote reserve-keyword placeholder="通过手机号进行查询" :remote-method="userRemoteMethod" :loading="personLoading"> <el-option v-for="item in pe

2021-08-25 10:54:34 2517

原创 css 记录font-weight在谷歌浏览器中的表现

1.font-weight: 100|200|3002.font-weight: 400|5003.font-weight: 600|7004.font-weight: 400text-shadow: 0 0 0 #000;

2021-08-25 10:14:55 457

原创 websocket心跳检测和重连机制(复制即用)

data() { return { wsurl: 'ws://127.0.0.1:8080', websock: null, lockReconnect: false, timerReconnect: null, heartTimeout: null, serverTimeout: null };},created() { this.createWebSocket();},beforeDestroy() { if (this.webs

2021-05-14 16:00:56 463 1

原创 window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)

文章目录一、卸载node二、安装nvm三、配置路径和下载源四、使用nvm安装node五、nvm常用命令六、卸载nvm七、遇到的问题nvm 全名 node.js version management,顾名思义是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。一、卸载node如果你已经安装了node,那么你需要先卸载node,如果你没有安装那直接跳过这一步到下一步。打开控制面板 -> 打开程序和功能 -> 右上角搜索输入node -> 右键卸载为了确保彻底

2021-02-19 10:11:04 121766 37

原创 使用 vue/cli 4.5.11 创建Vue项目

文章目录一、准备工作二、使用Vue CLI3创建Vue项目三、运行一、准备工作(1)环境要求:vue-cli要求node版本8或者更高(8.10.0+推荐);vue-cli3 需要node版本>=8.9, (官方推荐:8.11.0+ )。(2)安装vue-cli4:如果原本安装了cli2.0版本,需要先卸载旧版本(npm uninstall vue-cli -g),然后清除缓存( npm cache clean --force),再安装vue-cli4(npm install -g @vue/c

2021-02-02 10:53:38 1543 2

原创 在GitHub上新建仓库并上传项目

一、准备首先需要一个GitHub账号,如果还没有的话,移步 GitHub官网 注册。如果电脑没有安装Git,那么需要 下载 并安装Git。二、在GitHub上面新建仓库创建成功后会进入到这里。三、上传项目打开本地项目的文件夹。然后在项目文件夹中右键,选 Git Bash Here。在Git Bash 中依次输入下列的几行代码,其中第三行引号内可以替换成任意的提交注释,第四行地址需要换成刚刚自己建的仓库地址。git initgit add *git commit -m "first

2021-01-28 11:11:54 663

原创 2021前端面试题整理

文章目录HTML篇html语义化标签CSS篇50道基础题常见布局BFCBEMCSS预处理器HTML篇html语义化标签语义化元素不会对内容的本质有任何的影响,仅仅是提高页面结构规范化和可读性,方便维护。$:IFE-NOTE:页面结构语义化CSS篇50道基础题$:50道CSS基础面试题常见布局$:前端7大常用布局方式$:Flex布局和常用属性BFC$:什么是BFC?什么条件下会触发?应用场景有哪些?BEM$:BEM命名规范CSS预处理器$:Less常用到的语法$:Sass和

2021-01-20 17:20:54 2928 1

原创 ES6 Promise对象的理解学习

文章目录前言一、定义二、基本用法三、应用前言Promise改善异步代码的处理,Async/await改善Promise的使用。一、定义Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise对象有以下两个特点:(1)对象的状态不受外界影响。Promise对象代表一个异步

2021-01-07 14:39:29 242

原创 利用Object.defineProperty实现一个简单的MVVM双向绑定

文章目录一、Object.defineProperty介绍二、实现一个简单的MVVM参考文章一、Object.defineProperty介绍该函数可以直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。通俗理解就是:给对象添加一个新的属性,或者针对对象里的某些属性,可以给这个属性设置一些特性,比如是否只读,是否可以被for…in或Object.keys()遍历等。语法 Object.defineProperty(obj, prop, descriptor)例如:v

2020-12-30 15:24:25 151

原创 柯里化函数的实现和应用

文章目录一、什么是柯里化?二、举例柯里化函数思想实现的场景三、通用的封装方法四、性能五、扩展一道面试题参考文章一、什么是柯里化?柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。基维百科上的解释是:柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。看这个解释有一点抽象,我

2020-12-30 11:22:45 757

原创 从浏览器多进程到JS单线程,全面梳理了解JS运行机制

一、区分线程和进程线程和进程区分不清,是很多新手都会犯的错误,没有关系。这很正常。先看看下面这个形象的比喻:进程是一个工厂,线程是工厂中的工人。工厂有它的独立资源 - 工厂之间相互独立 - 工厂内有一个或多个工人 - 工人之间共享空间 - 多个工人协作完成任务。如果是 windows 电脑中,可以打开任务管理器,可以看到有一个后台进程列表。对,那里就是查看进程的地方,而且可以看到每个进程的内存资源信息以及 cpu 占有率。所以,应该更容易理解了:进程是cpu资源分配的最小单位(系统会给它分配

2020-12-28 17:53:25 321

原创 渲染大量数据,利用setTimeout提升渲染速度

<!DOCTYPE html><html><head><meta charset="utf-8"/><title>渲染table测试</title></head><body><button onclick="renderTableFun()">点击渲染table</button><div id="box" class="container"></div&g

2020-12-24 15:38:35 597

原创 前端节流(throttle)和防抖(debounce)的区别和用法,并封装成vue指令

一、节流(throttle)在一定时间内(例n秒内),不管方法被调动多少次,只会在n秒后再调动第二次方法。也就是每隔n秒执行一次。var canFlag = true;window.onresize = function(){ console.log('resize') if (!canFlag) return; canFlag = false; setTimeout(function(){ canFlag = true; console

2020-12-23 18:04:57 742 1

原创 什么是闭包?闭包的作用及应用场景

一、什么是闭包假设,上面三行代码在一个立即执行函数中。三行代码中,有一个局部变量local,有一个函数foo,foo里面可以访问到local变量。好了这就是一个闭包:「函数」和「函数内部能访问到的变量」的总和,就是一个闭包。有的同学就疑惑了,闭包这么简单么?「我听说闭包是需要函数套函数,然后 return 一个函数的呀!」比如这样:function foo(){ var local = 1; function bar(){ local++; return local

2020-12-23 10:10:24 4093 2

原创 js立即执行函数

一、什么是立即执行函数顾名思义,声明一个函数并马上调用这个函数就叫做立即执行函数;也可以说立即执行函数是一种语法,让你的函数在定义以后立即执行,又叫自执行函数;二、立即执行函数的写法立即执行函数的写法有三种:( function ( “ 参数 ” ) { " 函数方法 " ; } ) ( “ 给参数传的值 ” )( function ( " 参数 " ) { “ 函数方法 ” ; } ( " 给参数传的值 " ) )! function ( " 参数 " ) { " 函数方法 " ; } (

2020-12-21 17:00:33 4365 2

原创 ES6 class类的理解学习

文章目录一.类的由来小结一.类的由来传统的javascript中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。JavaScript 语言中,生成实例对象的传统方法是通过构造函数。构造函数示例:function Point(x, y) { this.x = x; this.y = y;}Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y

2020-11-26 15:21:06 259

原创 http请求参数之Query String Parameters、Form Data、Request Payload

文章目录1.GET请求Query String Parameters2.POST请求FormDataRequest Payload1.GET请求Query String ParametersGET请求时,参数会以url string 的形式进行传递,即?后的字符串则为其请求参数,并以&作为分隔符。2.POST请求FormData当发起一次Post请求,若未指定Content-type,则默认content-type为application/x-www-form-urlencoded,即参

2020-11-26 11:55:22 647

原创 JS中的原始数据类型(基础数据类型)和 引用数据类型

文章目录js的数据类型划分方式为 原始数据类型(基础数据类型)和 引用数据类型两种类型的区别1.存储位置不同2.传值方式不同3.两种数据类型在实参和形参中的区别js的数据类型划分方式为 原始数据类型(基础数据类型)和 引用数据类型原始数据类型:Undefined,Null,Boolean,Number、String。引用数据类型:对象、数组、函数。两种类型的区别1.存储位置不同原始数据类型:直接存储在栈(stack)中的简单数据段,占据空间小,大小固定,属于被频繁使用的数据,所以存储在栈中;引

2020-11-26 10:36:20 3016

转载 JS中的栈内存、堆内存

先来看这样一个问题:const定义的值能改么?答案是部分能改,部分不能改。const定义的基本类型不能改变,但是定义的对象是可以通过修改对象属性等方法来改变的。例如:>>> const a = 1>>> a<<< 1>>> a = 2<<< VM1750:1 Uncaught TypeError: Assignment to constant variable. at <anonymou

2020-11-26 10:01:22 358

原创 ES6 ...三点扩展运算符常见用法(实例)

文章目录一、对象的扩展运算符1.取出参数对象中的所有可遍历属性,拷贝到当前对象之中二、数组的扩展运算符1.将数组转换为参数序列2.复制数组3.扩展运算符可以与解构赋值结合起来,用于生成数组4.将字符串转为数组5.任何 Iterator 接口的对象,都可以用扩展运算符转为真正的数组参考一、对象的扩展运算符1.取出参数对象中的所有可遍历属性,拷贝到当前对象之中let bar = { a: 1, b: 2 };let baz = { ...bar }; // { a: 1, b: 2 }上述方法实际上

2020-11-25 17:08:33 277

原创 简述forEach()、map()、filter()、every()、some()的用法

1.forEach()用于遍历数组,无返回值。var arr = [1,-2,3,4,-5];arr.forEach(function(item,index,array){ array[index] = item * 2;});console.log(arr); // [2,-4,6,8,-10]可以看到,forEach()可以传入一个匿名函数作为参数,而该匿名函数有含有三个参数,其依次代表数组遍历时的当前元素item,数组遍历时的当前元素的索引index,以及正在遍历的数组arr

2020-11-24 11:42:18 299 2

原创 JS中reduce()用法学习总结(实例)

文章目录前言一、语法1.定义和用法2.语法3.参数二、实例1.计算数组元素相加后的总和(官网例子)2.求数组项最大值3.计算一个字符串中每个字母出现次数4.数组去重/对象数组去重5.扁平一个二维数组6.递归利用reduce处理tree树形三、其他相关方法1.reduceRight()2.forEach()、map()、every()、some()和filter()总结参考前言写在前面,在写这篇文章之前,我一直不能理解reduce()的用法,实际项目中也很少用到。直到有一天,我下定决心想要好好学习redu

2020-11-24 10:42:43 996 3

原创 vue npm run serve 报错 Error: Cannot find module ‘vue-loader-v16/package.json

报错: Error: Cannot find module 'vue-loader-v16/package.json'解决:尝试删掉 node_modules 用 npm i 重新下包,无效;使用 cnpm i ,有效。

2020-10-09 12:03:21 1394 1

原创 npm run dev 报错 Module build failed: Error: No PostCSS Config found in:

情景:本地项目移到git上面,项目从git上面拉下来运行后报错 failed: Error: No PostCSS Config found in: D:\XXX解决:查了网上的资料说:需要在根文件里面新建一个文件 postcss.config.js ,在里面添加以下代码:module.exports = { plugins: { 'autoprefixer': {browsers: 'last 5 version'} } }然后重新 npm run dev 就好了…

2020-08-28 11:56:48 214

原创 移动端 css通用样式表

@charset "utf-8";html { font-family: "Helvetica Neue",Helvetica, sans-serif; /*谷歌浏览器字体最小字体12px*/ -webkit-text-size-adjust: 100%;/*100%/none 关闭字体大小自动调整功能*/ /*a标签及拥有 :active伪类的元素有默认的高亮框*/ -webkit-tap-hightlight-color: transparent; /*

2020-08-17 11:42:01 956

原创 简单记录一下 Sass/Scss 和 Less 的区别

一、Sass/Scss、Less是什么?Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,使用 “缩进” 代替 “花括号” 表示属性属于某个选择器,用 “换行” 代替 “分号” 分隔属性。比css比多出好些功能(如变量、嵌套、运算,混入(Mixin)、继承、颜色处理,函数等),更容易阅读。Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持IE 6+

2020-08-17 10:22:49 362

原创 vue 中使用scss, 报错 Module build failed: TypeError: loaderContext.getResolve is not a function

使用步骤:1.打开终端,安装sass依赖包npm install --save-dev sass-loader //sass-loader依赖于node-sassnpm install --save-dev node-sass2.在build文件夹下的webpack.base.conf.js的rules里面添加以下配置{ test: /\.scss$/, loaders: ["style", "css", "sass"]}3.修改 style标签 lang=“scss”, 启

2020-08-17 10:03:00 513

原创 CSS3实现缺角矩形,缺角边框以及折角矩形

项目中经常用到不规则的背景或边框,最直接的解决方案是通过切图或用伪类before、after遮挡,但是这两种方法都有弊端,索性花时间整理学习一下更好的解决方案,方便取用。本文主要介绍通过背景渐变和clip-path实现,伪类实现的方法不再赘述。一、缺角矩形使用css3渐变实现缺角矩形,linear-gradient相关属性介绍移步官网。<div class="box"></div><style> .box{ width: 100px.

2020-08-07 15:29:45 10441 1

原创 iview DatePicker 结束时间改为23:59:59

<DatePicker type="datetimerange" ref="DatePicker" v-model="formInline.searchTime" format="yyyy-MM-dd HH:mm:ss" placeholder="请选择查询时间范围" :transfer=true :options="timeOptions"

2020-08-06 11:06:46 1862 1

原创 原生js实现列表自动滚动循环播放

1.实现效果图鼠标移入,暂停滚动; 鼠标移出,继续滚动;2.实现代码原理及注意点:1.要实现无缝衔接,在原有ul后面还要有一个一样内容的ul;2.最外层div为可视区域,设overflow:hidden;3.2个ul的高度 > 外层可视div高度,才能滚动;html:<!-- vue --><div id="review_box" @mouseover="rollStop()" @mouseout="rollStart(60)"> <ul id

2020-08-03 16:14:04 5279 1

原创 vue单页应用下使用路由vue-router在新窗口打开页面(带参数)

1.router.jsexport default new Router({ routes: [ { path: '/statistic', name: '/statistic', component: Statistic, title: 'statistic', hidden: true } ]2.使用 $router.resolve带参数在新窗口打开<a href="javas

2020-08-03 15:26:53 502 1

原创 记录一些常用的js工具方法的封装

日期格式化:/* * 格式化日期函数 * 参数: * {1} -> date : 日期对象(Date) * {2} _> format: 格式 (yyyy-MM-dd hh:mm:ss) */let dateUtil = {}; dateUtil.format = function(date, format) { var o = { "M+": date.getMonth() + 1, "d+": date

2020-07-24 10:03:28 219 1

原创 vue 监听元素大小变化 element-resize-detector 并移除监听 uninstall

前言: 记录一个好用的包,在做自适应模块的时候,可以实时监听页面中元素的宽高变化,弥补了window.onresize只能监听由于浏览器大小引起的元素变化;安装方法:npm install element-resize-detector或<script src="node_modules/element-resize-detector/dist/element-resize-detector.min.js"></script>使用:<div ref="box"

2020-07-23 16:27:52 3542

原创 css3 背景渐变色实现过渡效果

对于设了渐变颜色的background,css会当做背景图片处理,这时直接设过渡transition会没有效果;整理了两种用过的,给渐变背景加过渡的方法:方法一:利用background-position,通过改变背景位置实现过渡<div class="btn"></div>.btn{ background: linear-gradient(72deg,rgba(5,120,255,1) 0%,rgba(0,177,255,1) 50%,rgba(0,177,255,

2020-07-23 16:08:17 3773

转载 使用vue自定义指令 实现当图片加载失败时使用默认图

首先在入口文件main.js定义一个全局指令//全局注册自定义指令,用于判断当前图片是否能够加载成功,可以加载成功则赋值为img的src属性,否则使用默认图片Vue.directive('real-img', async function (el, binding) {//指令名称为:real-img let imgURL = binding.value;//获取图片地址 if (imgURL) { let exist = await imageIsExist(imgUR

2020-06-24 10:53:03 452

原创 iview的checkGroup的onchange方法传入多个参数

<CheckboxGroup v-model="checkAllGroup" @on-change="checked=>checkAllGroupChange(checked,item)"> <Checkbox label="aaa"></Checkbox> <Checkbox label="bbb"></Checkbox> <Checkbox label="ccc"></Checkbox></Check

2020-06-17 10:15:28 1371

侧边导航滚动监听.zip

查看实现效果:https://blog.csdn.net/HuangsTing/article/details/83446193

2020-08-03

空空如也

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

TA关注的人

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