- 博客(31)
- 问答 (6)
- 收藏
- 关注
原创 vue 2 实现自定义组件一到多个v-model双向数据绑定的方法
前言有时候我们需要对一个组件绑定自定义 v-model,以更方便地实现双向数据,例如自定义表单输入控件。甚至有时候,我们想要实现绑定多个 “v-model”,也就是多个“双向绑定”,例如带表单输入的模块框,想同时控制模态框的显示状态与表单的输入状态。好在 vue 3 已经实现了多 v-model,那么在 vue 2 上我们可以如下实现。单个“双向绑定”的实现使用 model 实现其实 v-model 只是 value + change 的语法糖,监听输入并触发改变,因此只要实现 “监听” +
2020-11-25 22:33:25
17343
1
原创 TS类型断言简化对象类型声明
TS类型断言简化对象类型声明前言在使用了 typescript 的项目开发中,有时候为了某个对象进行声明,经常需要写完 interface 之后,在赋值的时候又写了一遍一模一样的代码;当想对它增加一个键值,又得去增加 interface 的字段声明。很想要像声明一个普通变量那样,对某个键值直接进行类型声明。对象类型声明的传统方式对于对象的类型声明,我们经常使用 interface、type、class 的方式,先对整体类型进行声明,然后再去赋值,例如:interface IInterface {
2020-10-09 20:22:05
8149
原创 JSON.stringify的使用和一些思维拓展
平时在对一个数据进行凑合用的 json化,我们会直接 JSON.stringify(obj) 输出一个一行的字符串,并且会自动过滤掉 undefined、Function等内容。但它实际上能够接3个参数。JSON.stringify(str, replacer?, space?)https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringifyspace 大于0时是用来美
2020-08-10 10:56:33
485
原创 项目中统一换行符CRLF/LF还需增加的git配置
背景我们在合作开发中,对于 git 的配置往往是只有 .git 文件夹,或者再多一个 .gitignore 文件,常常忽略了一个非常重要的内容:换行符。换行符是个很重要的东西,特别是当你的项目或者团队使用了不同的操作系统时,这个时候统一换行符是非常必要的东西。常见的换行符有以 Windows 为代表的 CRLF 和以 Unix 系列的 LF,具体含义可以自行搜索。场景也许我们在项目中配置了...
2020-01-15 20:21:26
2483
原创 微信小程序 msg_sec_check 正确调用方式
在服务端使用微信小程序的内容安全检查等接口时,尽管按文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html 的要求传了参数,但是还是会出错,而用 postman 等工具却正常,以下分享调试经验。1. 正确调用方式在服务端发起调用时,网...
2020-01-07 17:27:19
8230
原创 Warning: no saslprep library specified. Passwords will not be sanitized
在 nodejs 中使用密码连接 mongodb 时,会报 warning:Warning: no saslprep library specified. Passwords will not be sanitized在 mongodb 的依赖里 node_modules/mongodb/lib/core/auth/scram.js 发现有以下代码:12: let saslprep;13...
2020-01-02 10:43:40
1824
原创 tomcat安装ssl证书Connector attribute SSLCertificateFile must be defined when using SSL with APR
其实网上有很多安装的教程,这里简单放一些参考链接:https://cloud.tencent.com/document/product/400/35224但应该有很多人和我一样,按照教程改了 tomcat 的 server.xml 后,启动是报错 Connector attribute SSLCertificateFile must be defined when using SSL with...
2019-12-03 20:21:45
552
原创 egg-shell-decorators结合egg-jwt实现token验证
在 egg.js 搭建服务端框架过程中,我使用了装饰器 egg-shell-decorators,配置和使用可以直接参考 https://super2god.github.io/egg-shell-decorators/#/ 来简化我的 controller 配置 router,同时用了 egg-jwt 来进行身份验证,按照其文档的配置过程之后,我还是遇到了坑。如果你使用了 egg-jwt,那...
2019-10-17 22:01:01
1306
原创 多个数的最大公约数、最小公倍数算法
首先,笔者假设大家已经会辗转相除法和更相减损术。两个数的最大公约数(GCD)、最小公倍数(LCM)用上面两个算法实现非常简单。那么如果是同时求多个数的呢?首先约定两个数的最大公约数的函数为gcd,最小公倍数的函数为lcm。多个数的最大公约数算法自然而然会想到用逐轮用2个数计算,将上一步的最大公约数与下一个数继续计算,直到计算完所有数。function multi_gcd_step()...
2019-09-07 22:10:41
8016
原创 在有 Vue Router 的项目中如何在 Object 原型上增加方法
现象在有 Vue Router 的项目开发过程中,在 Object.prototype 上挂自定义方法,会发现它的函数体内容会被拼接到 url 参数里。(下面以 Object.prototype.log 为例)import Vue from 'vue'import App from './App'import router from './router'// 在 Object.proto...
2019-08-01 18:17:06
1466
1
原创 浅探 Vue 为什么不增加数组下标响应式
Vue 的双向数据绑定,使得修改数据后,视图就会跟着发生更新,比如对数组进行增加元素、切割等操作。然而直接通过下标修改数组内容后,视图却不发生变化。那么,在保留原有的数组响应方式下,为什么 Vue 不增加对数组下标的响应式监听呢?arr[index] = val 不是响应式的在 Vue 官网的 列表渲染 — Vue.js 中,有强调 Vue 不能 直接检测通过数组下标改变值的变化,需要通过 数...
2019-07-25 14:49:46
1424
3
原创 Knex对bit类型进行取值方式
最近建表的时候,is_promotion字段打算用来放 true|false|NULL 的布尔变量,于是设置了 bit 类型。在node端使用knex查询的时候,在对 is_promotion 取值的时候展示了一个类似普通对象的假象:通过 is_promotion.data[0]取值将会报错或者无效。事实上它返回的不是 true | false | null 或者 0 | 1 | null,也...
2019-07-23 15:18:20
344
原创 v-model实时更新带来的render问题
每次修改都会引起 render最近在开发的时候,发现在内容较多的首页上对 v-model 绑定的输入框上输入内容,页面会变得很卡顿,有些带有动画的元素还会闪动,初步怀疑是 v-model 实时更新引起整个组件(页面)的 re-render。连续执行了输入“123456789”,通过浏览器开发者工具的 Performance 观察发现,确实是如此:可以看到会连续触发9个事件,每个事件中都含有 ...
2019-07-23 14:36:57
4671
1
原创 删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路题目是要把所有重复的结点去掉,比如 1,1,1,2,3,3,4 变成 2,4,而不是 1,2,3,4思路1原地操作next指针,需要用到3个指针。由于头结点也...
2019-04-16 11:34:00
299
原创 连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...
2019-04-02 22:14:20
155
原创 数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路1** 断言:超过一半的数字一定位于有序数组的中间(向下取整),否则不可能会超过一半 **先对数组排序得到中位数后,求indexOf,lastIndexOf计算长度...
2019-04-01 23:02:41
253
原创 js对象数组深浅拷贝总结
为什么有深浅拷贝这得从JavaScript的变量中包含两种类型的值说起基本类型值基本类型值指的是存储在栈中的一些互相隔离的简单的数据段,比如 String, Number, Boolean 等简单类型引用类型值引用类型值是引用类型的实例,它是保存在堆内存中的一个对象,引用类型是一种数据结构,最常用的是Object, Array, Function类型,另外还有Date, RegE...
2019-03-27 12:05:09
514
原创 js数组去重方法总结
一、有序数组的去重暴力去重,利用循环每次判断当前元素是否在数组中别的地方出现过,此处不展开介绍利用 es6 的 Set 是不重复集合的特性function reduceRepeatBySet(arr) { return Array.from(new Set(arr))}利用object的key不能重复的特性function reduceRepeatByObject(a...
2019-03-15 11:30:20
316
原创 完美解决webpack多页面热部署缓慢问题
问题在前端多页面(多html)开发的时候,使用webpack进行HMR热部署,但每一次修改之后,热部署持续很长的时间,而且页面越多,时间越长,观察可知大部分时间花在 asset optimization 这一步。每次修改都会触发所有页面的重新构建,但其实我们只需要更新修改的页面即可。原因使用 vue-cli 等脚手架搭建的时候,会默认在 webpack.dev.conf.js 中配...
2019-02-20 11:45:46
6470
11
原创 完美解决Webstorm不支持nodejs等语法提示和补全
问题在使用 Webstorm 写 es6、node的时候,会出现没有语法提示甚至是产生波浪线,例如常用的 require, import不仅是内置函数语法,不仅是 js,在一些第三方npm库(比如 element-ui),在 vue/html 等上也被黄色背景色标上“未知标签名”的语法提示既影响美观,又不支持代码候选补全,实在对不起 WebStorm 前端开发利器的称号。 ...
2019-02-17 23:22:32
14734
14
原创 vue-router原则:不直接引用路由路径
VueRouter声明:const router = new VueRounter({ routes: [ {name: 'Home', path: '/', component: Home}, {name: 'Category', path: '/category', component: Category}, {name: 'P...
2019-01-20 22:10:21
1849
原创 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同
【问题】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。时间限制:1秒 空间限制:32768K概念:二叉排序树(BST):又称二叉查找树、二叉搜索树,其定义为:二叉排序树或者是空树,或者是满足以下性质的二叉树。若它的左子树非空,则左子树上所有记录的关键字均小于根记录的值。 若它的右子树...
2018-12-27 21:24:58
926
原创 【含详细证明过程】变态跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
【问题】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。时间限制:1秒 空间限制:32768K思路:跳 n 个台阶,可以有以下互斥的跳法(跳法数量记为ways[n]):1. 跳到第 n-1 个台阶后,再一次跳 1 级,跳法有 ways[n-1];2. 跳到第 n-2 个台阶后,再一次跳 2 级,跳法有 ways[...
2018-12-04 22:04:34
1513
原创 【含详细证明过程】一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
【问题】一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。时间限制:1秒 空间限制:32768K思路1:递归法利用二叉树,结点为当前剩余台阶数,左孩子为跳 1 级,右孩子为跳 2 级,直到剩余台阶数为 0 即叶子结点时,累加跳法数量。算法很简单,以下为 JavaScript 实现代码(运行超时):var ways = 0;// 树...
2018-12-02 23:26:08
3462
原创 计蒜课:泥塑课
小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过 250 立方厘米的等量橡皮泥,教大家做泥塑。在上课过程中,她发现每个班都恰好有一个小朋友会去抢另一个小朋友的橡皮泥,于是她决定,在正式开始做泥塑前,让大家把手里的橡皮泥都捏成一个立方体,并且测量手里捏好的橡皮泥的长、宽和高。这样,她就可以知道谁被谁抢了橡皮泥了。
2017-11-16 13:52:22
775
原创 win10装ubuntu双系统启动时卡在命令行
win10装ubuntu双系统,用EasyBCD制作了启动项后,启动ubuntu时卡在命令行,下划线一闪一闪。原因是EasyBCD制作时选错选项
2017-08-16 11:47:21
2262
转载 安装程序无法继续。Microsoft Runtime DLL安装程序未能完成安装
最近安装VMware Workstation 12的时候,遇到了下面的问题:在网上搜了一堆答案,有人说要右键“我的电脑” -> “管理” -> “服务”里面去设置,有人说要安装 vs/vc运行库,还有到 BIOS 中去设置 Intel Virtualization Enable。照这么做完,还是照样出错。后来搜到一个靠谱的:这时不要点确定。开始菜单运行输入‘%temp%’,
2017-02-01 20:50:05
33645
6
原创 HTML、CSS、JavaScript判断 IE
做过前端开发的应该知道 IE 是最令码农头疼的浏览器。适应性不好先不说吧,自家浏览器的不同版本的差别还那么大,IE8及以下版本的浏览器不支持 html5,不支持 css3,甚至有些 JavaScript 还不支持!!!然而,IE 是自带在 Windows 操作系统的,不同 Windows 版本自带的 IE 版本也不一样,你装了系统就会带上 IE 浏览器,IE浏览器一般不会自动更新,不像其他浏览器你
2016-07-03 16:16:23
573
原创 让HTML5, CSS3, Bootstrap3在虐心的IE8上爬模滚打
HTML5 和 CSS3 推出已经很久了,然而在它推出之前,早就有 IE 的存在,所以不可避免地发生 IE8 及其更早版本不支持 H5 新标签新特性和 CSS3 新内容这样的尴尬局面,而且还存在着对 JavaScript 的兼容问题…… 虽然微软已经对 IE 弃疗,转向 Edge 的开发,但从市场份额上看,显然我国的网民还没放手 IE,仍然有很多人在使用 IE8 及其更早的版本(因为 win
2016-06-26 23:23:46
773
转载 HTML语义化
最近一段时间在学习网站前端开发,在编写HTML的时候,总是抱着“能实现就好”的态度,大量地使用div等“万金油标签”,给别人和自己带来了阅读上很大的麻烦。 正如一个公司一样,每个部门各司其职;其实一个HTML文档也是,每个HTML标签都自己的语义。下面的资料是从上网摘抄过来的,和大家分享一下。============================================
2016-06-20 21:21:04
415
空空如也
mongdb怎么在查找的时候统计某列数据
2020-02-09
Linux怎么设置脚本开机启动
2019-03-21
git如何使得文件在既存在远程仓库中,又不会提交它的修改
2018-12-24
WebStorm增加Element-ui的语法提示
2018-12-17
局域网不能访问windows server 2008
2017-10-16
WEB前端移动端表格UI设计
2016-12-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人