uniapp打包所需资料

7 月 19 日
阅读 1 分钟
64
流程开发者账号(要钱)appid(网页上生成)证书请求文件(需在Mac OS上使用 “钥匙串访问” 工具生成)开发证书(网页上生成)开发描述文件(网页上生成)创建appid创建证书请求文件创建开发证书添加调试设备收集uuid填入uuid创建开发描述文件选择appid选择证书选择设备生成

在centos中安装nginx

7 月 18 日
阅读 1 分钟
72
1 下载nginx压缩包下载地址:[链接]2 上传到centos中3 解压 {代码...} 4 进入解压后的目录 {代码...} 5 安装相关依赖工具 {代码...} 6 编译环境 {代码...} 7 编译安装 {代码...} 8 找到nginx安装的目录 {代码...} 9 进入nginx的安装目录 {代码...} 10 在nginx目录中进入执行文件目录 {代码...} 11 启动nginx {代码...} 1...

svg的使用方式

7 月 3 日
阅读 1 分钟
98
使用img加载 {代码...} 优点:使用简单缺点: 不能动态修改svg的样式

uniapp开发记录

7 月 2 日
阅读 1 分钟
99
使用uni.switchTab的问题使用uni.switchTab切换到的页面,第二次进入时,不会方便触发更新待补充细节。onShow的触发时机由于tab页面再次进入时,不会触发onLoad,如果你想再次发起请求,需要用到onShow。

上拉无限加载的几种状态显示判断

7 月 1 日
阅读 1 分钟
93
没有更多数据了loading ==== false && data.length > 0 && data.length < PAGE_SIZEPAGE_SIZE为每页条数,如果返回的数据条数小于PAGE_SIZE,说明已经没有更多数据了。

vue3使用记录

6 月 25 日
阅读 5 分钟
316
watchEffect初始化时会调用吗?会,就算没监听东西,初始化也会主动调用一次。defineModel的用途用于简化组件使用v-model的双向绑定逻辑.我么以一个包含input的组件演示defineModel的用途版本1:不使用defineModel {代码...} {代码...} 版本2:使用defineModel {代码...} {代码...} 根据上面的代码,我们发现defineModel...

如何在vscode中调试typescript?

6 月 3 日
阅读 2 分钟
349
首先要知道vsocde是无法调试typesript的。所以我们要做的就是将typescript编译为javascript,然后告诉vscode编译后的代码位置,这样才能进行调试。

windows远程桌面无法使用检查清单

5 月 15 日
阅读 1 分钟
103
1 win + r调出运行程序2 输入services.msc点击确定3 找到名为Remote Desktop Services的选项,保证Remote Desktop Services的服务状态为正在运行

在react hooks中,当useEffect依赖自身来更新自己时,遭遇死循环如何解决?

5 月 4 日
阅读 2 分钟
163
观察如下代码,我们需要依赖words来更新自身,所以需要将words加入useEffect的依赖中。更新words触发useEffect,useEffect再次更新words,然后就产生了死循环。

关于react中视图未使用的state更新,也会导致组件重新渲染的问题

5 月 1 日
阅读 2 分钟
99
在如下代码的情况下,如果我们点击按钮,会发现即使A和B组件没有依赖timestamp,但每次setTimestamp也会让函数重新渲染,这其实是无意义的性能开销。

依赖倒置原则在react中的应用

4 月 27 日
阅读 2 分钟
101
依赖反转原则(Dependency Inversion Principle,DIP)是面向对象编程领域中的一个重要原则,其主要目的是降低模块间的耦合度,提高代码的可维护性和重用性。

既然程序会自己抛出错误,为什么还要写try catch呢?

4 月 27 日
阅读 1 分钟
137
抛出问题以前一直困惑,在下面的代码中,进行try catch的意义是什么?js引擎不是会自己抛出错误吗?为什么还要多此一举手动捕获打印呢? {代码...} 解决问题现在我才明白,这样做有以下好处:有些错误会导致程序崩溃,用了try catch可以避免。在捕获了错误时,你有机会对其进行修复。你可以在catch中打印提供更有用的信...

开闭原则在react中应用

4 月 27 日
阅读 2 分钟
101
对应到react中,首选的场景就是组件了。react的组件的props其实就是开闭原则的一个很好的例子。因为我们可以通过props添加新增行为而无需修改现有代码。

Facebook软件工程师的10条clean code原则

4 月 27 日
阅读 4 分钟
111
始终如一的代码风格是基本要求。(其中将let换成了const,这是一条最佳实践,只在你确实需要重写变量值的时候用let,否则一律用const)

js实现撤销和重做的简单示例

4 月 27 日
阅读 2 分钟
158
通过上面代码我们发现,撤销和重做本质上就是对数组的入栈和出栈操作。要注意的一点是,实现重做的前提是在撤销的时候,需要将移除的元素有序的存起来,这样在重做的时候才能用数据可用。

当useEffect遇到了对象依赖

4 月 25 日
阅读 2 分钟
99
提出问题根据坐标对象,查询对应的地址详情,代码实现如下: {代码...} 上面的代码看起来没问题,但是,当我们运行起来的时候,会发现控制台在一直不停地输出coming和发起请求。分析问题根据useEffect的用法我们可知,只有当依赖发生变化的时候,才会执行内部的代码,所以问题在其依赖的coordinate上。但我们的coordinat...

关于前端计算时,小数精度丢失的问题

4 月 25 日
阅读 1 分钟
101
提出问题下面的小数计算精度丢失问题,知道的朋友应该都知道。不过一般都是在后端进行计算再返回给前端进行展示,所以也不会成为问题。 {代码...} 解决问题但有时候也需要前端进行计算时,这个问题就需要被解决。这里推荐使用decimal.js来处理。 {代码...} 注意某个版本add方法如果用0加上0会得到00,需要判断一下。 {代...

递归的几种场景记录

4 月 24 日
阅读 6 分钟
183
修改节点名和修改节点值都可以用这种方式。只不过该方法会修改原始的树,简单的处理方式是在传入前提供tree的副本。(后面会添加不修改原始tree的版本。)

测试用例用不到完整的数据,但是ts要,如何解决?

4 月 23 日
阅读 1 分钟
105
提出问题在下面的测试代码中,编写的测试用例不需要用到所有的Item字段,如果用上完整的字段很没必要,不用又ts检测无法通过,这种情况怎么处理? {代码...} {代码...} {代码...} 分析问题问题的关键在于,让ts认为你提供的是完整的Item,而ts中的断言就是干这个的。解决问题 {代码...} 总结问题该问题属于ts断言非常合...

一个简单的ts计时器

4 月 21 日
阅读 1 分钟
147
{代码...} 用法: {代码...}

如何让音频播放指定次数?

4 月 21 日
阅读 2 分钟
165
代码示例 {代码...} 调用play(2),也就是期望播放2次。初始化一个计数器和一个Audio对象。为音频添加播放结束事件监听器,回调函数为onEnded。然后调用audio.play()进行播放。当onEnded被调用,说明播放完成,我们将计数器自增加1。检查计数器是否达到期望次数:如果达到,则移除audio上的ended事件,流程结束。如果未达...

当从localStorage中获取数据时,如何做异常处理?

4 月 20 日
阅读 2 分钟
114
下面的代码在有初始值的情况下,能够工作的很好,但是当localStorage中存在非法的数据时就会抛出异常,如果你的程序没有做好异常处理,就会崩溃。

什么时候不应该使用useEffect?

4 月 20 日
阅读 2 分钟
111
当你的数据是同步的差的:数据来源是同步的,没有必要使用。 {代码...} 正确示例:直接使用。 {代码...} 当你的数据可以通过其他数据计算得来差的: {代码...} 更好的:从已有数据中派生。 {代码...}

react-router-dom@6中如何在组件外进行跳转路由?

4 月 17 日
阅读 1 分钟
185
react-router-dom@6中无法直接使用history模块,换了如下方式: {代码...}

TypeScript新增接口和更新接口传参定义差异的问题

4 月 15 日
阅读 1 分钟
169
{代码...} 方案1:分别定义 {代码...} 方案2:使用Partial {代码...}

使用form-data的content-type上传文件问题

4 月 12 日
阅读 1 分钟
183
问题当后端需要我们上传文件时,一般会用form-data的类型。接口文档像这样:目标是发出这样一个请求:代码示例 {代码...} 注意不要对formdata进行包装,以下是错误示例: {代码...}

TypeScript泛型在ajax上的应用

3 月 29 日
阅读 2 分钟
144
泛型参数 {代码...} 泛型响应 {代码...} 同时指定请求和响应为泛型 {代码...} 冗余应用应用场景UserResponse和NewsResponse属于冗余的定义。 {代码...} 用泛型去掉UserResponse和NewsResponse的冗余的定义。 {代码...}

数组方法中的slice与toSpliced

3 月 27 日
阅读 1 分钟
238
方法罗列方法是否修改原数组返回值slice否包含摘取元素的新数组toSpliced否不包含被删除元素的新数组slice获取指定位置的元素,然后将这些元素作为数组返回。函数签名:slice([start], [end])start摘取开始位置end摘取结束位置使用示例:浅拷贝 {代码...} start默认为0,end默认为items.length所以在两个参数都不指定的...

TypeScript中的断言语法(as)理解

3 月 24 日
阅读 3 分钟
327
如下代码,我们调用document.getElementById获取一个元素,然后尝试对其调用getContext方法。然而这段代码无法通过ts检查,而是会抛出错误。

vue pinia与vue hooks(Composition API)的关键差异

3 月 23 日
阅读 1 分钟
476
vue pinia是一个单例,也就是说多次初始化实例都是同一个,所以在多个组件中使用时,他们修改的时同一份数据,也就能实现vue pinia的设计目的,即数据共享。