自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 问答 (19)
  • 收藏
  • 关注

原创 小程序线多点路图绘制

height800rpxwidth: 3,},width: 3,},width: 3,},width: 3,},width: 3,},width: 3,},width: 3,},

2024-04-23 19:58:17 1047

原创 Object.is 和==,===的区别

使用==比较当左右两边类型不同时,会进行类型转换,而Object.is则不会。例如 ‘’ == false 的结果是 true,但是 Object.is() 不会对其操作数进行类型转换。Object.is和===直接的唯一区别就是对带符号的0或NaN之间的不同。静态方法确定两个值是否为相同值。

2024-03-12 17:00:29 238

原创 父子组件创建,更新,销毁时候的生命周期

如果只更新父组件那么子组件不参与变更。如果只更新子组件那么父组件不参与变更。

2024-03-08 11:49:16 207

原创 uniapp小程序获取位置权限(不允许拒绝)

小程序上如果需要一些定位功能,那么我们需要提前获取定位权限。我们页面的所有功能后续都需要在用户同意的前提下进行,所以一旦用户点了拒绝,我们应该给予提示,并让用于修改为允许。方法,然后走获取权限的逻辑。如果用户点击拒绝则会弹出提醒,用户点击确定按钮后会跳到权限设置页面进行重新设置。无论他选择了允许还是不允许,重新回到页面都会重新执行。上面方法,是在vue3 + ts的环境执行的。方法进行权限获取,如果你之前拒绝过该权限,则直接走。进行权限提示,并且在确定按钮绑定。方法重新进行权限设置。方法,再次进行判断。

2024-03-06 19:48:15 1302

原创 uniapp文件预览以及修改预览标题

这个api会将文件临时存到本地,并且会返回该文件的临时地址,预览时候显示的标题就是文件的临时名称。很多时候我们需要自己定义文件标题,而不是临时文件名。看起来是没什么问题,只是我们会发现预览的时候文件标题竟然是一串奇怪的字符。其实这是该文件的临时文件名。这两个api可以很简单实现对文档类型的文件预览。uniapp里面我们使用。

2024-01-31 10:29:40 650

原创 uniapp——自定义导航栏的封装

首先如果开发的是微信小程序,那么在安卓环境下导航栏标题是默认靠左对齐的(虽然你在微信开发者工具上看到的依旧是居中展示),而在ios环境则是居中展示的。很多时候我们需要对整个项目有一个主题色或者公共的样式配置,封装一个公共的自定义导航栏更易于实现与管理。系统导航栏高度根据机型会发生变化,大部分是44px,但是有时候也会是40px等高度,如果你需要针对导航栏和状态栏高度对页面做一些定制需求那会显得比较困难。(网上有一些根据胶囊按钮获取导航栏高度的方法实测后发现并不精准。当然原生导航也并不是一无是处的。

2024-01-15 11:01:49 1170 1

原创 七. 使用ts写一个贪吃蛇小游戏

使用ts做一个简易版的贪吃蛇

2023-12-15 23:57:20 604

原创 六. 函数

ts与js一样拥有具名函数和匿名函数两种函数类型。但是ts的函数需要提前定义好参数类型以及函数的返回值类型。ts里面每个函数参数都是必须的,函数参数的数量与类型必须完全一致才可以使用函数。指定一个函数参数非必传,当然这种参数需要放到所有参数的末尾。所谓函数重载,就是指的是拥有多个函数签名,一个函数体实现。事实上如果给末尾的参数设置默认值效果是等同于在末尾使用。在js里面如果我们并不知道将会有多少参数传入,可以使用。匿名函数的定义相对麻烦,我们需要提前定义函数的类型。进行所有参数的接收,也可以使用es6。

2023-12-14 19:39:19 128

原创 设计可编辑表格组件

什么是表单表格呢?简单来说就是在一个表格里面进行表单操作,执行增删改查。这在一些后台管理系统中是尤为常见的。今天我们根据 + 来设计一个表单表格组件。(不涉及完整代码,想要使用完整功能可以看底部连接)首先我们思考表格里面的表单元素应该如何实现。在用户使用的时候,我们希望用户传入一个指定的类型自动去匹配对应的表单组件。那我们就应该将所有类型做一个集成,并分别给他们一个类型名称。当然,为了最大程度为他们保留在已经实现的属性与方法,肯定接收的是一个对象,对象里面包含了他要展示的组件类型,一些原的属性方法,我们

2023-12-14 13:06:08 694 1

原创 五. 泛型

软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。

2023-12-13 15:15:54 64

原创 四.类——Class

ts里面的类与js的类大同小异,无非是做了一些了类型校验和功能拓展。

2023-12-13 13:32:50 168

原创 三(五)ts非基础类型(对象)

/ obj1.name = 'fufu' 报错,只能定义为空对象且不能修改// 但是可以在赋初始值的时候直接添加属性,这是ts在类型推断时,它会宽容地匹配对象的结构。// obj2.name = 'dandan' 依旧报错,不能修改// obj2.age =20 报错,只能修改定义的属性// obj4.name = 'fufu' 报错,只能定义为空对象且不能修改// 但是可以在赋初始值的时候直接添加属性,这是ts在类型推断时,它会宽容地匹配对象的结构。

2023-12-12 11:39:35 51

原创 三(四)ts非基础类型(数组)

数组作为我们最常用的数据结构之一,在ts里面存在众多定义方法。

2023-12-12 11:06:15 243

原创 三(三)ts非基础类型(接口)

使用readonly关键字限制接口中的参数是只读 ,使用该接口的对象只有在第一次赋值的时候可以对可读属性进行赋值操作。有时候我们会想到如果我们定义一个只读的接口,为什么不直接使用const声明一个对象呢?readonly是’TS’ 在接口提出,只针对接口中的参数赋值后就禁止更改,而const是es6 提出的针对变量,不让变量进行更改。最简单判断该用readonly还是const的方法是看要把它做为变量使用还是做为一个属性。做为变量使用的话用const,若做为属性则使用readonly。

2023-12-11 16:34:49 145

原创 三(二)ts非基础类型(枚举)

常量枚举与普通枚举得区别:普通枚举在编译得时候会真的生成一个对象保存到js代码中,而常量枚举不会,它会直接赋值到对应得变量上;因为常量枚举没有生成真正得对象,所以常量枚举只能包含字面量或其他常量枚举成员,并且不能包含计算成员,也不支持反向映射。当然,我们也可以定义字符串值得枚举,如果其中有属性定义为字符串,那么该值后面所有得枚举属性都需要你设置一个初始值。如上面代码中,我们定义了一个关于颜色的枚举类型,里面的值会从0开始依次递增,也就是说。枚举里面的值是可以重复定义的,所以在赋值的时候需要细心。

2023-12-11 15:36:49 45

原创 三(一)ts非基础类型(类型别名,交叉与联合类型)

按照合并逻辑他应该既是字符串又是数字的类型,但是ts并不存在这样的类型,所以会被赋值为never类型。有时候我们并不确定一个变量的具体类型,他可能是一个字符串,也可能是一个数字,甚至可能是undefined。在函数里面,我们定义了形参为联合类型AB,但是并不确定是A还是B,所以直接在里面使用age属性是错误的,我需要在使用前提前就知道有没有age属性。交叉类型是用于将多个类型合并成一个类型的语法形式。我们使用交叉类型合并这两个接口。首先介绍下type关键字,它表示类型别名,也就是说我们可以自定义一个类型。

2023-12-11 15:14:18 44

原创 二.ts基础类型

既然ts作为js的一个的类型化超集,最基础与重要的自然就是他的类型设定了。ts保留了js之前的所有类型。

2023-12-11 10:17:58 35

原创 一.初始typescript

首先我们要确认typescript是一个语言,是等同于JavaScript层级得,并不是一些人认为得是JavaScript得类型规范工具或者插件。

2023-12-07 15:58:34 222

原创 二.数据结构——数组

是一种由相同类型的元素组成的数据结构。它在内存中连续存储着一系列的元素,并且通过每个元素的索引来访问数组中的特定元素。数组的容量也就是长度会在一开始就被确定优点快速访问:由于数组的元素被存储在连续的内存位置中,因此可以通过下标快速访问数组的任意元素。这使得数组的访问速度非常快,特别是在对元素进行操作时,例如插入、删除或更新元素。高效的内存利用:由于数组中的元素存储在连续的内存位置中,因此数组的内存利用率通常比链表等其他数据结构更高。简单易用:数组是一种基本数据结构,易于使用和编写。

2023-12-06 10:18:35 148

原创 一. 初识数据结构和算法

对于数据结构的定义官方并没有统一的解释,在各个百科以及算法的书中,对于数据结构的定义有着不同的话术描述。

2023-12-05 16:17:35 245

原创 WeakMap

WeakMap

2023-12-05 13:16:59 259

原创 点击元素以外的事件监听

在项目中,我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。例如下面我们有一个表格里面嵌套表单的组件我希望点击n行的时候,n行的元素变成表单元素进行输入或者选择,当我点击其他其他区域n行又会恢复成数据展示的样子。那现在我们来想想这种监听应该如何实现呢?

2023-11-29 20:55:41 340

原创 css里面的@import

@import

2023-11-24 13:55:55 544

原创 git常用语句

将本地连接到https://gitee.com/ffanddd/uni-shop.git地址。将本地第一次(-u)提交到远程(origin)master分支。更新本地分支(通常在git创建分支后回到编辑器获取新分支操作)创建tabbar分支并切换到tabbar分支。本地初始化git仓库。列举仓库中的所有分支。删除本地(-d)分支。查看当前分支暂存状态。

2023-11-21 15:02:19 111

原创 使用npm发布自己的组件库

在npm发布自己的组件库,可以实现全部加载与按需加载

2023-11-20 15:19:50 487

原创 npm淘宝镜像设置

npm与淘宝镜像

2023-11-06 14:22:25 93

原创 9.在canvas绘制图片和视频

canvas绘制图片视频

2023-10-24 17:08:29 251

原创 8.canvas阴影设置

在canvas里面设置元素阴影相对来说比较简单,他有4个属性控制。

2023-10-23 16:49:09 127

原创 7.canvas图形颜色设置

之前我们绘制的所有图形都是使用的默认色黑色,今天我们开始给图形增色。

2023-10-07 17:42:13 441

原创 6.canvas绘制基本图形——椭圆

参数八(可选):Boolean 选项,如果为 true,逆时针方向绘制椭圆(逆时针),反之顺时针方向绘制。参数六:将要绘制的起始点角度,从 x 轴测量,以弧度表示 (非角度度数)。参数七:椭圆将要绘制的结束点角度,以弧度表示 (非角度度数)。参数五:椭圆的顺时针旋转角度,以弧度表示 (非角度度数)。ellipse是一个用来绘制椭圆的api,它拥有8个参数。参数一:椭圆圆心的 x 轴坐标。参数二:椭圆圆心的 y 轴坐标。参数三:椭圆长轴的半径。参数四:椭圆短轴的半径。

2023-10-07 16:37:13 388

原创 5.图形的连续绘制

到目前为止我们已经学习了折线,圆弧,矩形的基本绘制,但是我们每次都是单独绘制并且只绘制一个图形的。正当我们以为我们会得偿所愿的时候,悲剧出现了仔细看我们想得到的形状都拿到了,但是会什么会有多余的连接先线呢?仔细观察发现多余的连接线连接的是矩形的定位坐标和圆的起始角度,而我们在绘制这两种图形的时候也正是从这两个点开始绘制的。所以结论来了:在绘制多个图形的时候,多个图形的起点坐标往往会连在一起。、但是疑问来了?折线为什么没有连接在一起呢?如果你还记得moveTo的作用,那么大家就不会疑惑了。

2023-09-28 16:18:16 97

原创 4.canvas绘制基本图形——折线

在日常生活中,除了矩形与圆弧外,接触最多的就是折线了。甚至矩形也可以看出是一段折线,所以我们自然也可以使用绘制折线的方式绘制出矩形。

2023-09-28 14:52:04 350

原创 3.canvas绘制基本图形——圆弧

圆弧是圆的组成部分,一个圆可以看成多个圆弧或者一个圆弧闭环组合而成。因此我们画圆弧的时候往往把他看成一个残缺的圆。

2023-09-28 14:39:32 238

原创 2.canvas绘制基本图形——矩形

我们在初识canvas的时候已经用它画过矩形了,今天我们就总结下矩形的绘画方式。

2023-09-27 15:04:55 188

原创 1.初识canvas

初始canvas

2023-09-21 11:03:57 87

原创 盒子阴影效果与环绕阴影

在前端样式里面,最常见的一中效果之一就是阴影,好的阴影可以瞬间给人一种高端的用户体验,今天简单总结下这个样式的语法与使用方法。

2023-08-14 14:07:19 275

原创 vue组件跳层级时的事件处理 (事件的广播与派发)

vue组件跳层级时的事件处理 (事件的广播与派发)

2023-08-03 14:45:59 519 1

原创 uniapp自动获取视频第一帧作为视频封面

很多时候我们都需要使用视频的第一帧当作视频的封面,今天我们从uni-app的安卓app这个环境来实现下这个需求。

2023-08-01 21:03:48 2628 3

原创 认识renderjs

renderjs是一个运行在视图层的js。它比WXS更加强大。它只支持app-vue和web。

2023-08-01 15:02:12 1486

原创 ts接口的高级用法

ts接口的高阶用法

2023-02-22 16:08:09 176 1

空空如也

uniapp动态插槽报错

2024-05-09

v-html在小程序不同环境展示效果不同

2024-03-01

vue3版本的$attrs拿不到自定义事件

2024-01-18

this.$attrs获取布尔值为空字符串

2023-11-22

现在后端返回给我一堆下载地址,都是一个视频切片后的,如何在uniapp安卓环境下将这些分片的视频下周并且合并成原始视频并下载到本地。

2023-09-25

拿到模板字符串执行后的结果

2023-08-31

uniapp使用requireNativePlugin为什么一直为undefined

2023-05-15

uniapp如何进行无感热更新

2023-05-10

一个对整点时间的监听函数,但是我测试发现大打印callback一次有一次没有一直这样重复,如何解决?

2023-05-04

js实现对时间的监测

2023-04-28

uniapp在安卓设备上想要禁用掉虚拟按钮和顶部状态栏

2023-04-13

uniapp获取设备唯一标识怎么获取,

2023-04-10

安卓app上面怎样禁止下拉出现顶部的时间,音量等状态栏

2023-04-06

plus.downloader.startAll无效

2023-04-01

vite创建的项目不能直接使用node的内置模块

2023-03-10

在vue3里面使用ref获取elementPuls里面的组件元素失效

2023-03-07

使字符串平衡的最少删除次数。

2023-03-06

element下拉框在搜索过程中无法选中下拉值

2023-02-28

cnpm安装成功但是下载时报错

2023-01-08

vue项目发版到正式环境问题

2022-12-21

纯前端批量导出速度太慢

2022-12-01

el-tree查询卡顿问题

2022-11-04

父元素同时获取多个子元素

2022-10-16

contenteditable

2022-09-20

需要在el-element里面的el-select组件上直接做编辑操作

2022-09-20

transform的连续使用失效

2022-06-13

vue-router的history模式

2022-06-10

在<script setup>标签里面获取ref绑定的元素,一直获取不到。

2022-06-06

页面第一次打开和刷新的不同

2022-06-05

vue是mvvm框架吗?

2022-06-02

this指向问题:a.b()和(a.b)()为何一样呢?

2022-06-02

多级路由下,详情页面全屏展示怎么搞

2022-05-27

less模式里面嵌套修改element样式失效

2022-05-17

后端返回了html代码,前端怎样进行预览

2022-05-04

使用vue-cli创建项目时,里面的babel.config.js和vue.config.js有啥区别

2022-04-28

预览html格式的文件

2022-04-18

vue3使用ref获取子组件

2022-03-04

请求时的loading问题

2022-02-21

数字和undefined比较

2022-02-21

函数内部变量提升和参数

2022-02-17

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

TA关注的人

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