NVM for Windows 的安装和使用

今天后端同学那边遇到了一个问题,那边跑一个react项目,npm install 直接报错,但是在我这边并没有报异常,后来发现他的 NPM 版本为 3.10.10, 我猜测是 NPM 版本太低的缘故,就顺便看了下 Node 的版本,版本是 v6.10.0, 所以直接给他更新了 NodeJS,正当我以为问题解决了的时候,后端同学又和我说,现在的项目可以跑起来了,但是之前的项目他跑不起来了。

emmmm…..我又过去看了下报错信息,这会问题是 Node 给我更新掉了,版本太高项目跑不起来了….
所以,有了这篇关于 Node Version Manager (NVM) for Windows 的文章

阅读全文

简单实现滑动滑块完成验证

偶尔会遇到PM提的需求,要加入滑动验证,但是不想使用付费的第三方验证,想就在前端实现滑块验证即可(zuò zuò yàng zi),
这一段时间遇到两次要求加滑动验证了,就整理一下构思和部分伪代码逻辑。

本例只是一个面子工程,不会牵扯到复杂的人机验证部分,所以如果需要考虑人机校验,还是推荐你选择靠谱的第三方行为验证,不要自己瞎折腾。

阅读全文

Caddy单域名部署Vue与Laravel项目

之前是想写一篇 Nginx 关于配置前后端项目公用一个域名笔记的,可是后来客户提供的是已经是由其它项目的服务器,他们是使用的 Caddy 作为 web 服务器,所以也就变成了这篇文章。

我对于服务器环境配置可以说是一无所知,勉勉强强完成这次的项目部署,各位将就看看…😖

阅读全文

记录单独配置内网路由和外网路由的办法

由于公司刚刚搬迁,本地服务器还没有连上网络,所以并不能在外网访问到公司的服务器,只能使用局域网访问到。
所以想连接手机热点来连外网,并且通过插网线来访问内网,想实现同时访问外网和内网的效果。

单独连热点或者单独连内网都是可以的,但是同时就不行了,会默认使用本地连接也就是插的网线来访问网络,所以只能从一下选择其中一个:

  1. 可以访问外网,但是不能访问内部服务器;
  2. 不可以访问内网,但可以使用内网服务器。

然而每次都要切换网络来完成需求,我觉得有点蠢,肯定有更加优雅的方式来实现的需求。

所以就记一下这个办法。

阅读全文

谈一谈 JavaScript 中的闭包

函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时生成闭包。

先拿 MDN 上的一个简单的 🌰 来说:

function init() {
    var name = "Mozilla"; // name 是一个被 init 创建的局部变量
    function displayName() { // displayName() 是内部函数,一个闭包
        alert(name); // 使用了父函数中声明的变量
    }
    displayName();
}
init();

init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。
displayName() 是定义在 init() 里的内部函数(仅在 init() 函数体内可用),它没有自己的局部变量,
然而它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name

阅读全文

DigitalOcean向已经创建的Droplets实例添加SSH_key

几近一周没有好好写过代码了,就准备远程配置一下客户服务器的环境。

这次客户邀请我加入了他们 DigitalOcean 的 Team 中,但是他们不想提供 Droplet 实例 Root 密码, 看了一下控制台大概找到了一个添加 SSH_Key 登陆的地方,所以使用了 PuTTYGen 创建了一对 Key,但是添加之后使用 SSH 连接时提示我: 远程服务器拒绝此密钥,让我重新输入Root账户的密码。

大概找了一下国内的相关问题并没有找到解决的方法,Google 出来也差不多,基本都是添加 Key 之后,需要创建新的实例才可以使用新添加的 Key。
那我需要对 已经创建了的 Droplet 实例 添加 Key 怎么办呢?

相信大家在搜索该问题时已经添加好了自己的 SSH Key,具体添加创建 key 的过程我就不详述了,大家在官方 文档 中查找即可。

阅读全文

Jeecg-boot 开发挖坑日记11 查询过滤器整理

如果不配置默认查询条件是全匹配,想实现模糊查询需求在查询值的前后加: *

Jeecg-boot支持不编码通过配置实现 模糊查询匹配查询范围查询不匹配查询 等规则,
但是页面查询字段,需跟后台 ControllerPage 的字段对应一致,就可以不需写后台代码自动生成查询条件SQL。

例如:想实现模糊查询需求在查询值的前后加: *

阅读全文

关于 ES6 Class 继承中 Constructor 的整理

今天在和小伙伴聊天时, 发现对于 ES6 中的 Class 继承的理解我其实还是只是一个模棱两可的状态, 其实也不只是 constructor 有问题其它的部分其实也有问题, 这次先写类的继承之后再看有没有其它没理解的地方

整篇文章搭配食用 阮一峰老师的 ECMAScript 6 入门 - Class的继承 更佳

Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。

阅读全文

「 ReactJS 笔记 」 L01 井字棋

学习新东西的时候只看肯定是不够的, 所以既然 ReactJS 官方提供了一个学习的案例, 那么就一边写Demo, 一边读文档.

Tips: 我是直接看案例然后按照自己的理解去写的, 并没有按照官方案例亦步亦趋, 所以可能流程会不一样.

井字棋这个 demo 主要分为两部分:

棋盘

  • 点击棋盘空白格子可以落子, 落子之后交换棋手.
  • 棋格已经落子 / 有棋手获胜时不可落子
阅读全文

「 ReactJS 笔记 」 L00 起步

Vue 3.0 Beta版本已经更新很久了,不出意外正式的 Release 应该如约在第三季度发布,然而我还没有开始学习 TypeScript 以及 Composition API,趁着这几天项目还没开始,就抓紧了解了一下 React

阅读全文