自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【记录】因下载使用 nvm 而引发的学习事件

了解并学会了如何使用下载工具 curl了解如何设置 Path 环境变量(控制面板 -> 系统和安全 -> 系统 -> 高级系统设置)nvm 设置 node 或 nvm 镜像(用来下载 node 的源、用来下载项目依赖的源)文件路径中符号的含义node 历史版本获取链接nvm-windows 常用命令依赖缓存的获取npm 脚本的执行原理.npmrc 配置文件作用一开始在 github 上找到nvm这个仓库。

2023-04-15 04:47:22 190

原创 vue-cli 创建的 vue 项目的模式与环境

以 vue-cli-service serve 脚本启动应用,process.env.NODE_ENV 的值为 development。通过 cross-env,把脚本改成如下样子,就能通过 VUE_APP_DEV、VUE_APP_PROD 判断是开发还是生产环境。注意:cross-env 和 dotenv 的文件里定义的变量名,必须是 BASE_URL 或以 VUE_APP_ 开头。还可以通过 dotenv 在不同模式(test、pre、prod)下定义不同的环境变量。

2023-04-08 12:07:34 184

原创 【Vue】利用 IntersectionObserver 实现自定义埋点曝光指令

【代码】【Vue】利用 IntersectionObserver 实现自定义埋点曝光指令。

2023-04-08 10:59:05 541

原创 express.json() 和 express.urlencoded({ extended: true }) 作用

URL 编码只对特殊字符编码,普通的字母、数字、大部分符号不转译。为什么不直接使用 ASCII 码,因为这样会导致不够直观,清晰,容易引起混淆。字符ASCII 码URL 编码空格32%2038%2661%3D35%2343%2B37%25。

2023-04-03 17:59:58 1045

原创 使用 socket.io 创建一个简单的聊天应用

之后在浏览器中打开多个 localhost:3000 窗口,就可以测试 socket 通信了。// 客户端监听来自服务端的 chat no name 事件。创建一个目录 easy-chat-application。// 客户端监听来自服务端的 chat all 事件。有广播所有人的事件,也有广播除发送人外所有人的事件。然后下载 express 和 socket.io。在目录下执行命令 npm init -y。

2023-03-26 20:24:28 79

原创 node express 学习

法二:在 vue 文件中简单写一个请求,打开浏览器发现控制台打印了我们在响应里设置返回的数据。然后主 app 通过 app.use 给这个子 app 下的所有路由添加前缀。就是可以通过 url 直接访问到被静态托管的文件。法一:直接在浏览器访问 http://127.0.0.1:8000/。首先创建一个文件,底下创建一个 index.js 文件。然后创建一个 index.js 文件。如果只想返回静态的 html 模板,也是可以的。如果想访问子 app 的路由,也得带上前缀。编写一个自己的中间件。

2023-03-26 05:17:38 115

原创 package.json 常用配置解读

这里介绍一些常见配置,我把它们分为了 7 大类:描述配置文件配置脚本配置依赖配置发布配置系统配置第三方配置。

2023-03-13 19:44:38 871

翻译 什么是循环 circular symlinks(循环符号链接)?

假设 bar 是 foo 的依赖,foo 也是 bar 的一个依赖。最后获取两种方式都可以,只是在某些环境下,第二种可能会出现无限循环错误。符号链接将不会循环。

2023-03-12 15:49:40 129

翻译 【译】Flat node_modules is not the only way

是的,我们仅仅下载了 express,所以它是你的项目仅能获取的包。第二个 pnpm 的 node_modules 结构诀窍就是,这个包的依赖和这个包的真实位置在一个相同级别的目录位置下。express 的所有依赖都是符号链接,指向在 node_modules/.pnpm 下相应的目录。把 express 的依赖安放在一个级别提升的目录允许避免循环的符号链接。这个扁平化的结构避免了因为嵌套的 node_modules 而导致的长路径问题,但是依旧保持了包之间的隔离。那 express 的所有依赖去哪了?

2023-03-12 15:36:39 53

翻译 【译】Symlinked `node_modules` structure

当处理模块时,Node 会忽略符号链接,所以当 bar 从 foo@1.0.0/node_modules/foo/index.js 文件被引入 required 时,Node 不会使用 foo@1.0.0/node_modules/bar (它是个符号链接),相反,bar 会被解析到它的真实位置(bar@1.0.0/node_modules/bar)。对于 Node.js 而言这两者并没有什么不同:依赖是在这个包的 node_modules 里面还是在这个包的上层目录下的 node_modules 里面。

2023-03-12 14:42:57 74

原创 学习 pnpm

但如果 bar 有一个依赖 “foo”: “2.0.0”,并且 foo@2.0.0 不再工作空间下,foo@2.0.0 将会从仓库中下载。举例,foo@1.0.0 将会被链接到 bar 里面:如果 bar 有一个依赖 “foo”:“^1.0.0”,并且包 foo@1.0.0 在那个工作空间下。所以,如果你设置 “foo”: “workspace:2.0.0”,这次安装将会失败,因为 “foo@2.0.0” 不在当前的工作空间里。默认情况下,如果可获取的包符合声明的版本范围,pnpm 将从工作空间链接包。

2023-03-12 13:33:52 827

翻译 【译】React18 中会自动批量更新,达到更少的 render 次数

批量更新是指 React 的多个 state 在一个 re-render 里更新,以获得更好的性能。例如,如果在一个 click 事件中你有两个 state 更新,React 总是会批量更新它们在一个 re-render 里。如果你执行下面的代码,你将会看到每一次你点击,React 仅仅会执行一次 render,即使你设置了 state 两次。// 还不会 re-render setFlag(f =>!f);

2023-03-11 20:31:00 587

原创 tsconfig.json 配置文件,通过注释简单说明配置含义

【代码】tsconfig.json 配置文件,通过注释简单说明配置含义。

2023-03-11 02:36:40 300

原创 百度精准搜索技巧

juejin 是二级域名。http、https 并不属于域名的一部分。一个域名是由几部分组成,它被点分隔,不同于中文书写顺序,它需要从右到左阅读。假设你想要搜索出来的内容必定包含某关键字,就用。

2023-02-26 13:17:19 436

原创 Vue2 的响应式实现

【代码】Vue2 的响应式实现。

2023-02-25 14:04:38 212 1

原创 ts 学习记录

type 和 interface 最大的两点区别就是:是否能定义基本类型、同名是否能自动合并。1、type 能定义基本类型、联合类型等,而 interface 不可以。interface 只能定义对象类型。2、type 要合并类型只能通过 & 符号进行合并,同名的 type 会起冲突。而 interface 可以通过 extends 合并,也可以定义同名的 interface,其属性会自动合并。

2023-02-24 01:28:32 198

原创 面试题:有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,给你24小时时间,至少要多少只小白鼠才可以试出哪瓶有毒?

通过这个二进制给水编号的方法,我们居然可以不用一步一步的判断哪部分水有毒。而是直接通过最终的结果推导出哪杯水有毒。不得不感叹,这二进制真神奇。

2023-02-19 12:44:27 8836

原创 css 为什么从右往左解析的猜测

其实我从来没想过这个问题,写 css 的时候只是按照规则去写就完了。我觉得应该是从左往右吧?但居然是从右往左。为什么不是从左往右呢?首先浏览器会把 html 解析为 dom 树,style 样式解析为 css 规则树。dom 树很好理解,就是一个个节点。

2023-02-18 11:44:25 99

原创 两个函数弄懂 async await 执行顺序

其实 async 函数本身会返回一个 Promise。经过测试会发现,过了 1s 后,打印的 res 值始终是 speak 函数 return 的返回值。async 函数的返回值应该是 await 函数的返回值。

2023-01-13 17:38:25 142

原创 【笔记】Nuxt 案例 demo

【代码】【笔记】Nuxt 案例 demo。

2022-12-31 01:05:57 322 2

原创 【记录】利用 websocket 搭建一个广播程序

index.html,作为客户端。创建app.js,作为服务端。// 客户端向服务端发送消息。// 接受服务端消息。

2022-12-31 00:58:05 271

原创 webpack5 笔记四,开发环境

配置 devtool 选项,在有错误时浏览器能精确的提示出错误以及位置。使用 watch 脚本执行,之后每次改动文件都会自动重新打包。static 表示把该目录下的文件作为服务器可访问的资源。添加脚本并启动,可以看到自动打开了浏览器并且可以访问。添加 script 脚本,

2022-12-13 10:57:13 134

原创 webpack5 笔记三,管理输出

output 中的 [name] 指的是 entry 中的 key 值。我们在页面上添加一个按钮,点击时会打印 good morning。使用插件,并在 webpack.config.js 文件中配置。设置 clean 属性,即可每次构建时清空之前的文件。需要添加前缀 https,否者会提示找不到。

2022-12-13 06:27:21 135

原创 webpack5 笔记二,处理图片、字体、数据

对于最流行的 JSON 数据,webpack 支持直接引入。通过网络路径引入 iconfont。增加 webpack loader。经过测试,也是可行的。经过测试,不会报错。

2022-12-12 01:33:37 102

原创 webpack5 笔记一,集合 js 文件

目前在我看来,web 前端,应该可以看作就是 HTML、CSS、JS 的集合。😂webpack 就是一个脚手架,方便我们开发,并且提供更多有趣强大的功能。

2022-12-12 00:22:17 195

原创 mobx 粗浅学习笔记

makeAutoObservable 把一个数据变得像 Vue 的响应式数据,当改变返回的 timeState,就会触发副作用(更新视图)。实例化一个对象,在构造器中使用 makeAutoObservable 绑定 new 出来的实例。其实还可以直接 makeAutoObservable 一个对象,这种要想复用只能复制粘贴了。在这里副作用就是重新渲染被 observer 包裹的 React 组件。可以看到有一点 Vue 的选项式 api 那味了。这种方式可以实现复用。

2022-12-10 10:42:59 230

空空如也

空空如也

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

TA关注的人

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