自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我不是水哥

女粉丝很多的小哥哥

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

原创 置顶文章用来分享粉丝群,最新的学习心得还有文章预告之类的

缘起缘灭缘终尽,花开花落花归尘。半善半恶半随心,难彻难悟难归真。感谢名单:

2020-11-17 16:49:22 2182 5

原创 个人简历(前端)

个人简历,暂时置顶

2023-02-01 13:53:25 2510 3

原创 利用Canvas在浏览器上绘制复杂图形,比如:绘制一件衣服,绘制一条围巾,现阶段研究成果

利用canvas绘制复杂图形上限探索

2022-11-02 13:39:08 886

原创 关于wangeditor 在 vue 中写的死循环导致的问题

报错信息:TypeError: Converting circular structure to JSON --> starting at object with editor虽然不知道这作者写的是什么寄吧反正他的代码我用起来是这样的new 一个编辑器对象编辑器对象如下所示editor对象{ change:{ editor对象:{ change:{ editor对象:{ change:{ ...搁这俄罗斯套娃呐 } } } } }

2022-03-16 10:46:10 1360

原创 关于vue3.0 + vite的坑(持续更新,有问题在下面留言,解决过的我可以帮忙)

多的数不胜数,而且我也没看出来用了setup函数能解决代码是屎山的问题相继引入了vue-router,vuex,elment-ui组件库,私有方法注册等等等问题,最恐怖的还是打包的时候给你爆了一大堆错,根本打包不了package.json文件默认配置如下"scripts": { "dev": "vite", "build": "vue-tsc --noEmit && vite build", "serve": "vite preview" },完全不清楚什么vue-tsc–noEmi

2021-07-23 14:15:12 7535 17

原创 vant-weapp,一坨还没煮熟的大便!

我在之前写过一篇吐槽钉钉小程序的文章,没想到这世上竟然还有比钉钉小程序更恶心的东西,人家钉钉小程序抄微信是正在抄,文档还没更新,你TMD就是写都没写完就发出来给人用。我不是建议各位写小程序不要用vant-weapp这个组件库,我是建议有赞你个SB公司能TMD把跟vant这个组件库和小程序有关的内容全部下架,别套一层官方的外壳来恶心人。目前公共组件库SB做法整合:1.文档里有的组件weapp代码里连个文件夹都还没,你告诉我引入什么东西?引入空气吗?是机器智能生成代码实现了?那还要你干嘛?2.van

2021-06-03 14:33:08 3207 14

原创 vue3.0系列 —— 浅谈vue3.0性能优化

关于Vue3.0和鱿鱼西vue3.0本质上是对vue2.0的一次项目重构,从3.0的版本更新中你可以看到很多自己工作中的影子。比如本章要讲的性能优化纯粹是因为之前的代码过于暴力求解,需要一些“设计模式”来重新优化一下之前写的不怎么漂亮的代码。除此之外,之前遗留的一些历史问题也因为编译工具提供的一些新的API(Proxy)成功解决了。在这之上,尤大还借鉴了一些react的设计方法(HOOKS),顺便学了下TS,并用TS重构了代码。vue3.0的更新实际就是鱿大个人的技术更新,你能从这个新的框架里看到

2021-05-26 16:14:05 769 4

原创 前端使用typescript的好处 (附“缺点”)

在网上搜了一圈前端使用ts的优缺点,各种拿去跟ES6,JS比较的。你说你跟eslint校验比较下tslint还有理可循,你跟JS,ES6是在比啥呢?本篇文章总结一下使用TS的优"缺"点。先说好的1.个人在使用TS的时候,基本上把接口文档抄了一遍,接口一旦有任何的输出不对劲你都可以很明确的知道到底是谁在瞎几把改字段,熟练掌握后慢慢的你可以自己定义接口交给服务端,这样可以少点适配器,当然使用了ts还用个p的适配器2.如果你的代码足够规范的话,一旦增删改了公共接口,提交数据的函数或者跟这部分数据有关的页面

2021-03-29 17:32:47 4568 4

原创 【作死尝试!】我在CSDN官方群举报官方!!!!!!!!!!

低情商博主:某某语言从入门到精通某某接口的用法和实例详解某某语言学习笔记超详细的某某操作系统常用命令锦集高情商博主:奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺。最高情商博主:我踏马直接抄袭CSDN官方发给我的恶心文章,并把它拿出来“鞭尸”。我踏马直接官方群举报官方文章这篇文章不火证明CSDN官方骗人这篇文章火了证明CSDN官方丢人...

2021-03-18 13:55:21 2334 24

原创 JavaScript设计模式(12)—— 装饰器模式

装饰器模式的定义装饰器模式=表面意思,当用户发出相同的请求,如调用一个名为work()的函数,有些人的作息是955,而被装饰之后,就变成996了。用代码复现一下上面的场景如下所示:let work = function(){ console.log('work:9:00 - 17:00') } let _work = work work = function(){ _work() console.log('work:17:00 - 21:00') } work()

2021-01-19 14:59:03 464 1

原创 JavaScript设计模式(11)—— 中介者模式

现实中的中介者 —— 婚介中心婚介中心往往搜罗了大量的男男女女信息,当我们去婚介所请求一个“对象”的时候,婚介所通常都是先把你的信息录入到系统之中,然后婚介所会把你需要的“对象们”介绍给你。同时你也会被作为一个样本,被介绍给别人。当A和B发生关系的时候,B和C可能也在搞对象,而A也可能和D还有一腿。这个时候你作为A,你想要得知你的B在跟谁乱搞男女关系,你就得向婚介所求证了。同时婚介所在知道A和B开始正式搞对象的时候,应该通知B的对象们,B已经和A在搞男女关系了。在上面的系统中,用户都是通过婚介所这

2021-01-15 14:12:56 333

原创 90后歌单精选100首,我有歌,你有故事吗?

网易云音乐给我推荐的90后歌单,真的太久没听了,我有歌,你有故事吗?1.别在我离开之前离开2.有一种爱叫做放手3.六月的雨4.不要用我的爱来伤害我5.江南6.快乐崇拜7.折子戏 (泪目了)8.死了都要爱9.快乐崇拜10.三国恋11.爸爸妈妈12.要抱抱13.我不是黄蓉14.雨蝶15.寂寞在唱歌16.当你孤单你会想起谁17.爱丫爱丫18.放生19.有没有人告诉你20.哥只是个传说 (这个真的搞)21.贝多芬的悲伤22.犯错23.斯琴高丽的伤心24.天涯25.笔

2021-01-14 11:16:22 16582 2

原创 JavaScript设计模式(10)—— 职责链模式

职责链模式!=‘学术命名’我在本系列的第一篇文章里阐述过一个原则:即学习设计模式并不能帮助你优化代码,经常是给你现有的代码进行学术命名,而本章的内容可能不属于“学术命名”范畴了,职责链模式是一种彻彻底底的我在教你做事模式。职责链模式的使用场景不管是任何设计模式,都有属于自己适用的场景,而职责链模式的使用场景跟它的名字一样,将一个请求不断地传递,直到遇到能处理他的函数为止。当然为了确保请求能被处理,请至少有一个保底函数来处理那些错误请求,比如你想找工作,但你把这个请求发送到淘宝去了,那这个请求不管怎么传

2021-01-13 16:46:47 238 1

原创 滑天下之大稽,某博客网站竟然借鉴视频网站的设计风格来做首页

故西施病心而颦其里,其里之丑人见而美之,归亦捧心而矉其里。其里之富人见之,坚闭门而不出;贫人见之,挈妻子而去之走。彼知颦美,而不知颦之所以美

2021-01-08 12:00:45 2102 13

原创 JavaScript设计模式(9)—— 享元模式

享元模式=节约资源模式享元模式,顾名思义,就是分享“对象”的一个模式。例如学校里的图书馆,可能每种类型的书只有十几本,但是却能让一代又一代的学生都能看上这些书,这里就用到了享元模式。通过借阅书籍并归还的例子我们可以得出结论:享元模式是一种节约资源的模式。最最简单的例子在前端代码层面,我们通常会创建一些相似的对象来解决相似的问题。下面我们把图书馆的例子翻译成代码来介绍享元模式。如:A同学借阅《设计模式》,B同学借阅《设计模式》,C同学借阅《设计模式》,A同学借阅《模式设计》…class Lib

2020-12-17 15:50:00 250 1

原创 JavaScript设计模式(8)—— 模板方法模式

模板方法模式基于继承?呵呵明人不说暗话,我在看文章的时候,歪瑞讨厌看到诸如“继承”,“抽象类”,“父类子类爷爷类”之类的“非JS专用词汇”。恰巧模板方法模式上来就是一句:模板方法是一种基于继承的设计模式。后面还强调了一句:模板方法模式是一种只需使用继承就可以实现的非常简单的模式。对于不喜欢“继承”的我而言,还得去温习一下继承,为了写文章我去把ES6 class部分的语法过了一遍再看这一章,然后最气的事情发生了,看完之后我发现模板方法模式根本不需要继承!经典例子coffee or tea看过原著的都知道

2020-11-25 17:00:45 276 1

原创 JavaScript设计模式(7)—— 组合模式

回顾宏命令在讲组合模式之前,我们先来回顾一下上一章节的命令模式。刚才同事让我帮忙灌溉一下办公室里的花花草草,在这个例子中,command的发起者是同事,他希望我执行以下excute函数浇灌一下花花草草,恰巧办公室里有好几盆盆栽,每一种植物的浇灌方式还不一样(第一次知道浇水还要看说明书)。于是产生了以下代码。//同事var commander = { // 接收参数植物种类 pushCommand:function(plant){ // 执行共识函数excute plant.excu

2020-11-12 15:48:36 251

原创 JavaScript设计模式(6)—— 命令模式

命令模式是什么?命令模式最常见的应用场景是:有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。上面这段话其实是出自原著对命令模式的解释,看起来通俗易懂,其实坑多的一批。要读懂这句话,最关键的是读懂what is “不知道请求的接收者是谁,也不知道被请求的操作是什么”?这段话会在后面被反复反复反复提及,这里先画个重点,读完这篇文章后,如果你能完全了解上面这句话,并且能察觉出

2020-11-05 17:27:01 255

原创 JavaScript设计模式(5)——发布者-订阅模式

发布者订阅模式是什么?发布者订阅模式又称观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状 态发生改变时,所有依赖于它的对象都将得到通知。简(shuo)而(ju)言(ren)之(hua),发布者-订阅模式就是由发布者和订阅者组成的一种应用场景。以项目组为例,产品经理(或甲方)往往承担发布者的责任,负责推送需求到某工作群里,发出需求后,其他打工仔的手机就会滴滴滴的响,滋滋滋的震,这是因为这些打工仔订阅了这些消息,然后不同职责的打工仔就可以做不同的事情去响应这个需求。当然在这个群里的可能还有公司

2020-10-27 15:26:42 3946 12

原创 JavaScript设计模式(4)—— 迭代器模式

迭代器模式的核心就是——提供一种方法使你能够遍历到对象中的每一个元素,并对他们做类似的处理。 说人话就是——常见的数组处理方式。如forEach,map,some,every之类的通常我们用来处理数组方法给他们取个高大上的名字就是迭代器。 在JavaScript中,除了数组之外,普通对象也可以通过for in遍历,因此我们可以写一个通用的迭代器来处理"对象"。function iterator(obj,fn){ if (Object.prototype.toString.call(o...

2020-09-22 16:53:45 396 1

原创 JavaScript设计模式(3)—— 代理模式

代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 说人话就是:你想吃外卖变成,你委托骑手去店里拿外卖送到你手里。 代理模式的核心就是:丰富过程,结果不变。 以吃外卖的例子为例,我想吃外卖,这个事件的发起人是我,这个事件的结果是,吃外卖。 丰富一下这其中的过程: 我想吃外卖,我在APP上下单,骑手去店里拿外卖,骑手送外卖到我手里,我吃外卖。 再丰富一下过程: 我想吃外卖,我在APP上下单,骑手去店里拿外卖,店家说今天没进货,不开门营业,骑手到我家...

2020-09-16 16:02:42 506

原创 JavaScript设计模式(2)—— 策略模式

策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。 讲人话就是:定义一系列算法逻辑,处理类似的业务场景。 讲JavaScript话就是:你知道Math吗?就是把一堆数学方法整合到Math对象里,你可以很方便的调用这个对象的方法解决加减乘除等各种各样的数学问题。因此我提供一种常见的策略模式的写法,你们大概就能明白自己的哪些代码运用了策略模式了,代码如下:const Mymath = { add:function(){ const realArg = ...

2020-09-16 13:48:42 399 1

原创 JavaScript设计模式(1)—— 单例模式

单例模式的定义是:保证一个"类"仅有一个实例,并提供一个访问它的全局访问点。单例模式的类是一个只需要被创建一次变量(这并不代表他被创建后是不可更改的),因此我们需要一个通用的方法来确定某个类是否被创建过,只需要通过一把锁去判断这个类是否被创建过即可。因此我们先推出一个通用的单例模式创建方式,代码如下:<script type="text/javascript"> // 我们把业务逻辑封装在fn里通过变量的形式传入 function createSingle(fn){ ...

2020-09-15 17:09:36 502 2

原创 JavaScript设计模式(0)—— 学设计模式有个鸟用?

通常在任何系列开始之前,我都会写一篇简短的预告,将这个系列的实践意义进行提取进行总结,以便初学者不需要看具体的内容也可以通过看个开头就决定需不需要学习这部分的内容,在我的许多文章中都有这样的"FBI Warning"。所以在这篇文章中我会先把个人目前所学进行一个简短的总结。 首先这个系列参考的书籍是曾探——《JavaScript设计模式与开发实践》。简单的评价下这本书与这个作者,个人认为这本书写的很好,基本上作为给人来看的东西,内容是十分合格的,没有什么绕来绕去的地方,例子也都通俗易懂。但是作者就...

2020-09-02 15:00:11 822 3

原创 关于左右布局,一边高度不定,另一边和不定高度等高的CSS布局

百度上大部分都说设置负padding和负margin值来解决这个问题,事实上这个方法书上就能查到,而且是比较简单的方法,我这里提供另外一种百度不到的方法以及一种更简易的方法,第一种方法利用absolute的垂直文档流自适应属性。想了解absolute的水平垂直文档流自适应的可以参考我CSS的文章,大概是讲absolute那几篇。下面来看解题思路,看下图:图中的左边是一张图,右边是一段固定的文字,为什么固定的文字不定高呐?因为手机屏幕分辨率的问题,固定的文字也可能不定高。现在我们要让左边的图片高度等于

2020-06-02 10:47:25 3566 1

原创 el-select在移动端/ipad上搜索功能不能弹出软键盘进行搜索的问题最佳解决方案

首先这个问题我解决了一天,但结果发现他是个小问题,这里先不浪费大家时间,直接给解决方案:去除下拉框的readonly属性即可。懂的自然懂,具体方案可以看最后,先看下过程,可能对你有帮助。<el-select placeholder="请选择产品花型" filterable id="fuck" v-model="flower"> <el-option v-fo...

2020-03-27 16:04:04 6942 18

原创 日期进度组件支持拖拽编辑日期进度(看图,附源码)

效果看图,刚写的组件,不完善的地方自己完善拖拽的时候时间和比例自己会变,有需要自己拿源码,非vue的参考下思路就行<template> <div class="zhTimeProcess"> <div class="processCtn" :ref="'zhTimeProcess'+ id"> <div ...

2020-03-24 10:45:34 663 1

原创 你知道写作最重要的是什么吗?

今天点开博客,发现自己已经是一名拥有30W+阅读的“知名博主”了(其实没人听说过我,听说过水哥的倒是不少),所以我想跟各位分享一下如何坚持创作。我个人将写作分为三个阶段。第一阶段:心血来潮 有很多人都经历过这个阶段,就是心血来潮的想去做某一件事情,不止是写作,你可能听到某首英文歌,觉得很好听,就下定决心想学一下英语。所以你学英语的动力可能来自于你想唱某首歌。这个阶段的动力来源于你的内...

2020-03-05 15:45:43 914 8

原创 这两年我遇到过的“奇葩程序员”

(一)第一个故事来源于我的第一家实习公司。我在第一家公司实习的时候,我的前端负责人是一个长相比我还年轻的“小伙子”,事实上那时候我大三,而他已经过了而立之年。所谓师傅领进门,修行看个人。我从他身上听过的最多的一句忠告就是:“这个需求做不了”。我不知道是他当时觉得我太菜还是怎样,反正最终到我手里的需求,经过他的高超的社交技巧,都会变得极其简单,以至我登陆第二家公司后初期有些不适应“有求必应”...

2019-12-26 15:22:41 2184 26

原创 JavaScript基础(6)—— 花里胡哨的函数

在正式开始总结JavaScript权威指南第八章——函数之前,先来谈谈在实际应用中函数是做什么的。 通常情况下,我们会将一些常用的工具(如数学方法,数据格式处理,接口处理工具)封装成一段可重复执行的代码,这种只定义一次就可以通过函数名被多次执行的代码就叫做函数。说白了,我们使用函数就是为了少写几行重复代码。 FBI warning:本文要介绍的函数跟复用没有半毛钱关系,如果追求实用...

2019-10-29 17:53:27 691

原创 element-ui input组件改造,支持常用(自定义)数据类型匹配

效果如图,大部分功能和elment-ui差不多新增type属性type支持一些常用的正则匹配number:数字positiveNumber:正数mobile:手机号telephone:电话号email:邮箱webUrl:网址Chinese:中文IDcard:身份证custom:自定义当type属性为自定义时你可以传入customReg属性(该...

2019-10-29 14:23:40 2786 2

原创 JavaScript基础(5)—— 数组

我们都知道typeof(Array)的计算值是object,在JavaScript中,数组一般是一组连续的索引和值,而对象往往是一组不确定的属性和值,他们的本质区别在于属性值是否连续(注意:数组元素也可以是不连续的,如稀疏数组)。在编程中,一组拥有连续索引值的对象有许多好处:首先在使用数组的时候用户无需关心属性名,因为索引值是连续自增的整数。其次,用户在访问数组的时候可以轻松实现遍历,这一点f...

2019-08-20 17:33:27 477 1

原创 JavaScript基础(4)—— 包罗万象的对象(下)

上一章主要了解了对象的增删改查,引出了原型链和继承的概念,本章我们来好好聊一聊对象的属性,在对象的属性中有一些比较好用的方法和特性,了解这些方法可能对你写代码不会有什么帮助,但如果你要封装一个大型的,好用的对象——比如Vue,你可能就需要用到里面的许多工具了。1.检测属性有时候我们需要检测一个对象中是否包含某个属性,这个时候我们可以通过in运算符、hasOwnPreperty()或pr...

2019-08-14 17:35:28 369

原创 JavaScript基础(3)—— 包罗万象的对象(上)

本系列的第三篇文章跳过了《JavaScript权威指南》的第四章和第五章的内容(个人觉得这两章内容偏介绍和字典向),直接来聊一聊JavaScript中最最复杂,也是最重要的基本数据类型——对象。1.什么是对象? 对象:特指恋爱的对方,指男、女朋友关系,恋爱双方的行为的称呼,在想屁吃? JavaScript的对象指的是除字符串,数字,布尔值,null和undefined之外所有的值...

2019-08-09 15:12:46 443 1

原创 关于CSDN下架自定义栏目功能的一些看法以及博客迁移到掘金的通知

2019年6月18日晚上7点左右,CSDN宣布自定义栏目不对普通博主开放,然而自定义栏目在2019年6月4日的时候就已经"正式下架了",CSDN官方群发了一张图片,也就是上面的那张,我是第二天发现我的自定义栏目不见后跑去群里浏览了聊天记录,才知道CSDN官方偷偷下架了这个功能。 确认这个消息的真实性后,我在群里提出了以下的疑问: 对于我这样的用户来说,自定义栏...

2019-06-19 10:25:46 955 2

原创 对象数组中 对值相同的数据进行合并 —— 递归函数写法

在做许多管理系统的时候我们会遇到许多需要对表格数据进行合并的需求,如下图所示: 在上述例子中,我们得到的数据可能是扁平的,类似于[{ '品类':'帽子/针织/长巾', '配色/尺码':'红褐色/L', '生产计划数':'800顶', '纱线':'42支哔哩啪啦', '颜色':'蓝色', '重量':'10千克' },{ '品类':'帽子/针织/长...

2019-05-30 16:13:41 3022

原创 JavaScript基础(2)—— 类型、值和变量

本章是JavaScript中较为重要的一章,因此篇幅会较长,请耐心阅读。 在编程语言中,类型,值和变量是最最基本的概念,所有的的编程语言都包含这三个术语,在详细介绍他们之前,我们由浅入深,用最简单的例子概括一下类型,值和变量分别是什么。var msg = 'hello world' 上例中,msg就是我们定义的变量,'hello world'就是值,他被赋给变量msg,'h...

2019-05-15 19:16:21 479

原创 handsontable 合并单元格的配置项

狗B百度,这么简单的问题找不到一个正常的解决方案,傻逼吧??? 经过我一早上不懈的努力,终于找到了合并单元格的正确配置项(还是我自己猜出来的),合并单元格在菜单里的正确名称叫做mergeCells,这是通过参考菜单汉化包里的内容自己猜出来的。配置如下 hotSettings: { data: [ // 数据,可以是数据,对象 ['', '', '...

2019-03-18 11:15:23 3506 6

转载 get和post的区别(转)

本文转自:https://www.cnblogs.com/logsharing/p/8448446.html我是一个很少搬运的人,因为会破坏我的系列文章的美观度,每个人总有一点强迫症,但这篇文章太优秀了,留档方便查阅。有人说此文图片看不了,负责任的说,图文毫无软关系,就是一些表情包GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直...

2019-03-01 09:50:57 1258 2

原创 JavaScript基础(1)—— 词法结构

  在了解JavaScript的词法结构之前,需要对“词法结构”这个术语有个了解,什么是词法结构?  词法结构是指编程语言的一套基础性规则,用来描述你如何使用这门语言。如你需要如何定义一个变量,变量的变量名是怎样的?是否区分大小写?哪些变量名已经是系统关键字不能被使用?还包括如何写注释,程序语句间的缩进和分割规则等等等等。不管你是否了解词法结构的概念,它已经潜移默化的改变了你的编程思维。本章会...

2019-02-27 11:11:41 674

空空如也

空空如也

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

TA关注的人

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