- 博客(39)
- 收藏
- 关注
原创 解决MacBook Pro连接不上星巴克Wi-Fi问题(广域网Wifi)
(可能是因为VPN改变了你的DNS设置,导致DNS解析问题。DNS(域名系统)负责将域名转换为IP地址,如果DNS设置不正确,你的设备可能无法正确解析域名,从而无法访问广域网上的服务。
2024-11-11 15:59:12
1349
3
原创 如何让一个元素垂直居中。
设置容器display:flex,使用align-items:center;即可使其子元素垂直居中。子绝夫相,子元素top:50%;3、绝对定位和transform。
2024-01-24 14:03:07
424
原创 函数式编程之函数柯里化。
柯里化(currying)指的是将一个多个参数的函数拆分成一系列函数,每个拆分后的函数都只接受一个参数。上面代码中,函数add接受两个参数a 和 b。柯里化就是将上面的函数拆分成两个函数,每个函数都只接受一个参数。
2024-01-24 13:43:34
598
原创 JS中的内存管理
JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。
2024-01-17 18:25:15
448
原创 defer和async的区别?
选择async还是defer取决于你的需求。如果脚本之间没有依赖关系,并且它们的执行顺序不重要,那么可以使用async。如果你希望按照它们在文档中的顺序执行,而不阻塞页面解析,那么可以使用defer。
2024-01-17 12:54:27
859
1
原创 CSS选择器的优先级是如何计算的?
4、类选择器、属性选择器和伪类选择器:包括.class,[attr],:hover。3、ID选择器:以#开头,指定某个元素的唯一标识符,比如#header。5、元素选择器和伪元素选择器:div,span,:before。2、标签内样式:在HTML标签内部使用style样式。important优先级最高。
2024-01-13 15:44:19
377
原创 Vue3中,v-key的作用是什么。
2、避免重新创建元素:如果没有‘key’,在列表中插入或删除元素时,可能会导致Vue销毁或者重新创建元素,而使用‘key’识别,从而避免不必要的DOM操作。1、提高渲染性能:在列表渲染时,Vue会用‘key’确定虚拟DOM节点的唯一性,以便更快速的识别新旧节点的变化,从而提高更新性能。在Vue3中,key主要用于优化虚拟DOM的渲染性能,是一个用于标识虚拟DOM元素的唯一性的属性。
2024-01-13 15:38:04
614
原创 浅谈Vue3中v-if与v-for优先级问题。
在vue3中,v-if的优先级比v-for的高。在外面新增template加v-for可以解决这个办法。
2024-01-13 14:43:31
1549
原创 观Vue3 官网,浅谈ref和reactive的区别。
ref和reactive都能设置响应性,reactive由于只能给对象设置响应性,并存在重新赋值以及解构赋值会丢失响应式的问题,官方更推荐使用ref()。ref()给对象设置响应式本质上也是过了一遍reactive()。
2024-01-12 14:45:58
1655
原创 浅谈Vue中的NextTick。
等待下一次 DOM 更新刷新的工具方法。当你在Vue 中更改响应式状态时,最终的 DOM 更新并不是同步生效的,而是由 Vue 将它们缓存在一个队列中,直到下一个“tick”才一起执行。这样是为了确保每个组件无论发生多少状态改变,都仅执行一次更新。nextTick()可以在状态改变后立即使用,以等待 DOM 更新完成。你可以传递一个回调函数作为参数,或者 await 返回的 Promise。(节省性能,
2024-01-12 13:27:55
542
原创 浅谈Vue2与Vue3的双向绑定原理的理解
Vue2使用双向绑定核心原理是基于数据劫持发布-订阅模式。一部分通过数据劫持(Object.defineProperty())和Watcher类。数据劫持:Vue2使用Object.defineProperty()方法劫持数据对象的属性,对属性getter和setter拦截,属性被访问或者修改,除非getter和setter,实现数据响应式。Wather类:Wather用于订阅数据变化和视图更新。
2024-01-11 12:00:16
893
原创 超级干货,浅谈闭包。
闭包是一个函数以及周边环境状态(词法作用域)的引用组合。(画重点:闭包是函数,并且引用外部变量)换而言之,闭包可以让开发者从函数内部访问外部的函数的作用域。在JS中,闭包随着函数的创建而被创建。好处可以保护数据私有,坏处可能会影响性能,比如内存泄漏!!(注意:闭包引起的内存泄漏是不恰当使用而造成的,所以,谨慎使用闭包)init()创建了一个局部变量name和一个名为的函数。displayName()定义在init()里的内部函数,仅在init()函数体内可用。(块级作用域)没有自己的局部变量。
2024-01-07 15:55:30
490
原创 浅谈对Promise的理解。
JS中用于处理异步操作的编程模式。一个Promise是一个代理,它代表一个创建Promise时不一定已知的值。它允许我们将处理的程序与异步操作的最终成功值或失败值原因想关联起来。这使得异步方法可以像同步方法一样返回值:异步方法不会立即返回最终值,而是返回一个Promise,以便在将来的某个时间点提供该值。
2024-01-07 12:39:31
1239
原创 类数组和数组的区别?
数组继承Array.prototype,具有push(),pop(),shift(),unshift()等方法,类数组只有索引,具有lenth的属性。数组的原型是Array.prototype,类数组的原型是Object.prototype,类数组原型是一个普通对象。之所以能够将类数组对象转换为数组,是因为slice方法本身的设计。在这种用法中,slice方法被调用在上,并且使用类数组对象作为this对象。在这个用法中slice方法期望被调用的对象(即this。
2024-01-06 00:26:45
431
1
原创 TypeScript 入门款笔记。
TypeScript = Type + JavaScript ,在JS基础之上,为JS添加了类型支持。TypeScript 是微软开发的开源编程语言,可以在任何运行JavaScript的地方运行。
2023-12-22 22:42:28
985
原创 JS里面的内存泄露和浏览器缓存
程序认为一个变量没有用了,而垃圾回收机制认为它还在使用,从而导致内存无法释放。注意:JS在定义一个变量,就已经分配好了内存,同时也提供了垃圾回收机制,回收那些不再使用的内存。场景一:使用全局变量(实际开发需要避免使用全局变量)场景二:使用console.log(生产环境去除调试使用的console.log)场景三:不恰当的使用闭包 (比如使用全局变量接受闭包数据,但一直不被执行,也没有手动释放内存)场景四:DOM泄漏。
2023-12-15 20:12:18
476
原创 TS常见面试题。
unknown:(我的理解是安全型的any)它表示一个未知的值,不能直接对unknown类型的值进行操作,也不能将它分配给除unkonwn和any之外的其他类型,除非你先进行类型检查或者断言。type类型别名不仅可以用来表示基本类型,还可以用来表示对象类型、联合类型、元组和交集。never:表示一个不存在的值,ts使用三目运算符作类型声明,表示类型不存在。表示任何类型值,但想保持类型安全,可以使用unknown。类型,它可以理解为类型安全的(type-safe),js迁移ts的临时解决方案。
2023-12-11 18:23:32
345
原创 undfined和null有什么区别?
1、undefined表示未赋值的变量,在访问未初始化的变量时,默认值是undefined,比如var a ,打印出来是undfined;2、在 某些情况下,可以将变量显示赋值为null,它表示不指向任何对象,通常用于释放对象的引用,有助于垃圾回收。2、函数没有返回值时,返回的是undefined。3、原型链顶层为null,表示原型链的结束。1、null表示赋值了但是为空的对象。
2023-12-04 12:34:01
575
原创 怎么使用vscode(uniapp)编译微信小程序,微信开发者工具白屏问题怎么解决。
1、ctrl+j打开控制台,找到package.json文件的scripts下面有dev:mp-weixin。2、运行方式:打开 微信开发者工具, 导入 dist\dev\mp-weixin 运行。3、微信开发者工具出现白屏问题,也没用报错,直接更新微信开发者工具即可。
2023-11-17 10:16:14
1382
原创 window系统:Docker部署emqx/emqx:5.0.4 postgres redis。
2、图形化界面一直下一步,直到安装完成重新启动。1、首先,去官网下载Docker,(
2023-11-06 23:42:17
268
原创 Nest + Prisma + Redis + jwt 。
1、搭建nest,首先确保您安装了node(>=10,不包括13),并安装nestjs/cli,使用nest new name搭建nest项目。// 全局安装nestjs/cli npm/yarn/papm都可以npm i -g @nestjs/cli//your_project_name您需要创建的项目名nest new your_project_name2、切换目录到your_project_name,并使用pnpm run strat:dev,然后在浏览器输入:http:l
2023-11-03 11:12:55
382
原创 nestJS 脚手架快速搭建项目后端!
6、访问3000端口,出现hello world。7、nest start --watch可以热更新项目。4、使用yarn add .下载项目所需要文件。2、使用yarn全局安装nestjs脚手架。5、nest start启动项目。3、使用nest搭建项目。1、全局安装yarn。
2023-10-31 11:52:41
362
原创 nvm安装node18以上的版本。
如果是MacOS,再命令行前加sudo,例如:sudo nvm use 18.18.2。注意:如果有乱码,win系统使用管理员身份打开命令行,重新执行即可。3、使用nvm use 18.18.2。4、查看node版本,安装成功。2、使用nvm ls查看版本号。1、cmd打开命令行窗口。
2023-10-30 14:22:27
9020
2
原创 前端为什么要使用SSR服务器渲染
服务器上提前将HTML渲染完成,并将内容发送到客户端显示,减少了渲染过程中的网络请求等,可以大大缩短页面的加载时间,提高用户体验。尤其是对于低网络速度和低设备的用户,服务端渲染可以极大的改善页面渲染的速度。此外,通过SSR,我们可以避免在客户端产生闪烁问题。客户端渲染,由于需要等待js加载和执行,用户初始化可能会看到空白页或者框架。而在SSR中,服务端已经提前渲染完成,这种闪烁问题就得到很好的解决。
2023-10-20 14:32:12
242
原创 vueX,sessionStoage,cookie,localStoage.
vueX存储在内存,loacalStorege以文件的方式存储在本地。在登录的时候,一般都会用vueX配合localStorege用。用户信息存储在VueX,用于组件之间的传值,localStorage是本地存储,将数据存储到浏览器,一般都是跨页面传输数据。刷新页面的时候vuex存储的值会丢失,localStorage不会。1、cookie数据始终在同源http请求中携带(即使不需要),即cookie在浏览器和服务器来回传递;
2023-09-01 16:09:06
340
1
原创 JS里面的数据结构
Set函数可以接受一个数组(或者具有iterable接口的其他数据结构)作为参数,用来初始化。上面代码通过add()方法向Set结构加入成员,结果表明Set结构不会添加重复的值。ES6提供了新的数据结构Set。它类似于数组,但是成员都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。
2023-09-01 11:07:05
133
1
原创 怎么合并远程仓库分支代码,可以按照以下步骤进行操作:
4、运行git merge /命令,(举例:git merge origin/feat_car_fxy)3、使用git checkout 来切换分支到目标分支。使用命令git remote add 来添加远程仓库。2、运行git pull,将远程仓库的最新代码拉取到本地。命令:git pull。5、查看git status,没有冲突的话,git push推送到远程仓库。1、首先,确保你已经将远程仓库添加为本地仓库的远程地址。
2023-08-25 15:43:38
1485
1
原创 vue3创建项目相关命令。
3、cd vue-project以后npm init,再执行npm i --> npm run dev.1、安装最新版本的 Vue。
2023-08-03 10:46:10
408
原创 Macbook Pro 安装vue cli报错npm ERR! code ENOTEMPTYnpm ERR! syscall renamenpm ERR! 怎么解决。
这将会重新安装最新版本的。运行以下命令,手动删除。
2023-07-25 13:56:14
1111
原创 基于微信小程序封装的HTTP请求库。它提供了 GET、POST、PUT、DELETE 四种常用的请求方法,并且支持拦截器功能和基准地址配置。
【代码】基于微信小程序封装的HTTP请求库。它提供了 GET、POST、PUT、DELETE 四种常用的请求方法,并且支持拦截器功能和基准地址配置。
2023-07-21 21:59:53
855
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人