自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文搞懂常见的git操作

a是代表add,把所有的change加到git index里然后再commit。当你用-v参数的时候可以看commit的差异。强行移除修改后文件(从暂存区和工作区中删除)移除文件(从暂存区和工作区中删除)将文件给push到一个临时空间中。将本地库与服务器上的库进行关联。将分支dev与当前分支进行合并。提交当前repos的所有的改变。移除文件(只从暂存区中删除)建立一个新的本地分支dev。移除文件(从Git中删除)将文件从临时空间pop下来。从git中删除指定文件。将文件给推到服务器上。

2023-03-16 11:03:52 149

原创 一文搞懂http状态码

一文搞懂http状态码

2023-03-15 15:26:35 156

原创 最全的前端性能优化手段回答

减少HTTP请求、缓存资源、压缩代码、无阻塞、首屏加载、按需加载、预加载、压缩图像、减少Cookie、避免重定向、异步加载第三方资源。CSS写在头部,JS写在尾部并异步、避免img、iframe等的src为空、尽量避免重置图像大小、图像尽量避免使用DataURL。:使用缓存可减少向服务器的请求数,节省加载时间,所有静态资源都要在服务器端设置缓存,并且尽量使用长缓存(使用时间戳更新缓存)减少重绘和回流、缓存DOM选择与计算、缓存.length的值、尽量使用事件代理、尽量使用id选择器、touch事件优化。

2023-03-15 14:14:11 359

原创 html转pdf并下载,html2Pdf.js

html转pdf并下载

2023-03-09 10:04:08 711 1

原创 纯CSS实现复杂流程图

纯css实现复杂流程图

2023-02-27 15:51:37 1952 2

原创 最实用,无后顾之忧----vue移动端或web端手写签批橡皮擦功能,基于vue-drawing-canvas组件

vue手写签批,橡皮擦功能

2023-02-20 18:08:41 747

原创 打包时出现 regeneratorRuntime is not defined 报错问题的解决

regeneratorRuntime is not defined问题

2022-08-22 10:42:36 1160

原创 启动报错:Module build failed: Error: Node Sass version 7.0.1 is incompatible with ^4.0.0.问题解决

启动报错解决

2022-06-21 15:47:41 2490

原创 vue3实现导航栏绑定内容锚点+滚动动画

vue3实现导航栏绑定内容锚点+滚动

2022-06-16 14:31:06 3234

原创 requestAnimationFrame简单用法

面试题:用js实现一个无限循环的动画。首先想到的是定时器<!doctype html><html lang="en"><head> <title>Document</title></head><body><div id="aaa"></div><script> let a = aaa; let flag = true; let left =

2022-04-22 14:48:11 2110

原创 为什么const 定义的对象和数组可以改变它的值呢

碰到这个问题我第一反应是肯定不能改变,如果要改变值的话,用const定义干嘛,然后不信邪在浏览器控制台试试结果。卧槽!但是定义一个基本类型,确实改不了那为什么const 定义的对象和数组可以改变它的值呢?我来为大家解释一下。都知道对象和数组是引用类型,const声明的a中保存的仅是数组和对象的指针,这就是说const仅保证指针不发生改变,修改数组的值不会改变对象的指针,所以是可以改的的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是可以的。我们试着修改一下指针,让

2022-04-22 09:30:00 2938

转载 虚拟滚动之原理及其封装

本文分享自微信公众号 - 一Li小麦(gh_c88159ec1309),作者:一li小麦目前GitHub上只放出demo的版本,将在 https://github.com/dangjingtao/vList.git 持续更新。前端的业务开发中会遇到一些不分页且数据条数超过1000加载的列表(长列表),不分页的需求在一般前端程序员看来是不可思议的。正常的思考逻辑是,当数据量20w+时,后端报文可去到30+M,查询时间可能去到几十秒。但是前端如果尝试渲染这些数据,花费的时间必定是以分钟计算。通常是3分钟以上

2022-04-21 14:14:37 3654

转载 弄懂埋点只需一文

什么是埋点?我们做产品、做运营,都离不开数据分析,而做数据分析的前提,是我们保存了用户行为数据。埋点,就是将我们关心的数据保存下来的技术。举个例子,我们有个落地页,我们想知道有多少人来到了落地页,多少人看完了落地页的文案素材,多少人点击了转化按钮最终完成了转化。那么我们就需要记录每一个用户的访问记录、浏览行为记录、转化按钮点击记录等等。在埋点里,这些用户的行为记录,就是事件。如果我们想进一步分析,不同类型(男女老幼)、不同来源的用户,转化率之间的区别时,我们还需要在用户访问记录里,增加一些信息,例如

2022-04-13 15:05:40 1470

原创 推荐一个好用的css 动画库

https://animate.style/animate.css 是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单。GitHub:github.com/animate-css…

2022-04-13 14:51:39 357

原创 LogicFlow与原生BPMN的对比

一、弃用及选用缘由bpmn.js原生的局限① bpmn.js对于外部自定义不友好,bpmn.js 的拓展能力不足,很难在代码层面进行个性化修改, 自定义节点支持成本很高,而且只能全量引入,无法按需引入。② bpmn强调的是流程与固定步骤的执行,OA中某些流程可能不存在严格的先后顺序,更多的是对于审判者的决策和事件的执行,比如订单客户在某个节点有定制化需求等等,虽然使用并行网关+事件处理可以实现,但会复杂一些。③ 与后端配套的流程引擎适配的话成本较高,且不支持数据转换、不支持流程的校验等业务定制需求。

2022-04-12 17:07:47 4285

转载 分享几个在 VUE3 项目中常用的封装组合API

来源 | https://www.shymean.com/本文将介绍如何使用vue3来封装一些比较有用的组合api,主要包括背景、实现思路以及一些思考。就我自己的感觉而言, Hook 与 Composition API 概念是很类似的,事实上在react大部分可用的Hook都可以使用Vue3再实现一遍。为了拼写方便,下文内容均使用Hook代替 Composition API 。相关代码均放在 github上面,地址:https://github.com/tangxiangmin/vue3-hook。

2022-04-12 17:02:13 396

转载 纯css实现文字循环滚动效果-转载

纯css实现文字循环滚动效果-转载<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <me

2022-02-14 11:35:49 2074

原创 本地配置hosts快速访问GitHub

首先需要找到hosts文件路径C:\Windows\System32\drivers\etc\hosts接下来是修改配置1.添加hosts配置140.82.112.4 github.com199.232.69.194 github.global.ssl.fastly.net185.199.108.153 assets-cdn.github.com185.199.109.153 assets-cdn.github.com185.199.110.153 assets-cdn.github.co

2021-11-29 10:07:37 2497

原创 使用 antd Row 组件时 vite 提示引入 row 组件 css 发生错误

使用 antd Row 组件时 vite 提示引入 row 组件 css 发生错误:[plugin:vite:import-analysis] Failed to resolve import "antd/lib/row/style/index.less" from "src/views/Form/Base/Project/index.tsx". Does the file exist?/Users/wucheng085/Development/WorkSpace/luban/construct-lub

2021-11-26 11:32:45 1349

原创 Element-ui: el-cascader 级联选择器 可以单独选择任意一级选项,去掉单选按钮

目标:1、vue项目中需要使用el-cascader组件,由于官方有单选框,所以需要根据业务去掉单选框点击文字就可以选择任意一级的内容。效果图如下:期望:(可以选择任何一级,有三级情况下,想选择二级就选择二级,并且去掉单选框)步骤如下:1.先设置父子节点取消选中关联,从而达到选择任意一级选项的目的代码:<el-cascader :props="{ checkStrictly: true }" popper-class='自定义类名' clearable></el-casc

2021-08-09 13:48:30 5256

原创 可编辑div:处理光标插入加手写

html:// contenteditable: 可编辑属性,true or false// ref: 定位dom<div contenteditable="true" class="card-content" ref="cardAreaRef" placeholder="请输入或在右侧选择"></div>js:选中右侧或底部// link:想添加的标签,啥都行// (this.$refs.cardAreaRef as any).focus(): 定位光标位置ch.

2021-07-28 09:56:16 288

原创 vue @hook监听子组件的生命周期钩子

需要在父组件上知道子组件什么时候被创建、挂载或者是更新,特别是当为原生js库创建组件时,可通过使用@hook:前缀监听生命周期中的钩子,并指定回调函数。举个例子,如果你想要在第三方组件v-runtime-template渲染时做一些事情,那么你可以监听它的生命周期中的updated钩子<v-runtime-template @hook:updated="doSomething" :template="template" />你可能知道有一些方法可以在你自己的组件上,实现以上的需求。举个例

2021-07-15 15:19:11 193

原创 小型状态管理- vue.observable

随着组件的细化,就会遇到多组件状态共享的情况, Vuex当然可以解决这类问题,不过就像 Vuex官方文档所说的,如果应用不够大,为避免代码繁琐冗余,最好不要使用它,今天我们介绍的是 vue.js 2.6 新增加的 Observable API ,通过使用这个 api 我们可以应对一些简单的跨组件数据状态共享的情况。先看下官网描述,如下图observable()方法,用于设置监控属性,这样就可以监控viewModule中的属性值的变化,从而就可以动态的改变某个元素中的值,监控属性的类型不变量而是一个函数

2021-07-13 16:29:30 83

原创 vue-property-decorator @Decorator

当然了可以根据自己的需求扩展封装Decorator装饰器,装饰器接收三个参数目标对象目标key描述对象这里不明白描述对象属性可以看我这篇文章《深入理解JavaScript对象》上面example中,可扩展自己的Decorator装饰器,装饰器就相当于起一层拦截作用,先执行装饰器里面的操作,在执行我们函数本身的逻辑操作。我这里只做一个案例哈,具体看你们的需求。...

2021-07-13 16:17:24 61

原创 Css、less 以及 Sass(SCSS)之间的区别

SASS和LESSSASS(英文全称:Syntactically Awesome Stylesheets)Sass 诞生于 2007 年,使用Ruby 编写,是一种对css的一种扩展提升,增加了规则、变量、混入、选择器、继承等等特性。可以理解为用js的方式去书写,然后编译成css。比如说,sass中可以把反复使用的css属性值定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值。LESS(2009年开源的一个项目,受Sass的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手

2021-07-02 11:40:57 1956

原创 基于bpmn的业务流程图: LogicFlow

# npm$ npm install @logicflow/core --save# yarn$ yarn add @logicflow/core调用// 创建容器<div id="container"></div>// 准备数据const data = { // 节点 nodes: [ { id: 21, type: 'rect', x: 100, y: 200, text: {

2021-07-02 11:33:37 1653

原创 js的数据类型

{} + [] //"[object Object]"[] + {} // 0({}+[]) //"[object Object]"+[] // 0+{} // NaN[].toString() // []({}).toString() // "[object Object]"{}.toString() // Uncaught SyntaxError: Unexpected token .

2021-07-02 11:30:44 41

原创 如何形象地解释 JavaScript 中 map、foreach、reduce 间的区别?

假设我们有一个数组,每个元素是一个人。你面前站了一排人。foreach 就是你按顺序一个一个跟他们做点什么,具体做什么,都行,随便:```javascriptpeople.forEach(function (dude) { dude.pickUpSoap();});map 就是你手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去。结束的时候你获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的顺序一一对应。```javascriptconst wallets = people

2021-06-30 09:54:07 159

原创 javascript常用方法总结

javascript常用方法获取当前时间判断浏览器使用的是哪个 JS 版本js读cookiejs写cookieJS判断两个日期大小 适合 2012-09-09 与2012-9-9 两种格式的对比获取当前时间function GetCurrentDate() { var d = new Date(); var y = d.getYear()+1900; month = add_zero(d.getMonth() + 1), days = add_zero(d.getDate()),

2021-06-30 09:46:30 128

原创 工作流定时执行触发器

针对CRM系统定时触发设计的工作流定时触发器,满足一定条件自动执行某项操作

2021-05-25 11:43:07 217

空空如也

空空如也

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

TA关注的人

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