SF
兔子先森的博客
兔子先森的博客
注册登录
关注博客
注册登录
主页
关于
RSS
JS根据当前时间查当前周和月
兔子先森
22 分钟前
阅读 3 分钟
11
查询当前周MM-DD月日形式 {代码...} 当前时间:2025-04-27YYYY-MM-DD年月日形式 {代码...} 当前时间:2025-04-27查询当前月MM-DD月日形式 {代码...} 当前时间:2025-04-27
JavaScript创建指定位数数字数组
兔子先森
4 月 26 日
阅读 1 分钟
100
fill() 方法用一个固定值填充一个数组中从起始索引(默认为 0)到终止索引(默认为 array.length)内的全部元素。它返回修改后的数组。fill(0)传入一个参数则是给数组所有位置全部填充0
JavaScript洗牌算法-数组值随机交换
兔子先森
4 月 25 日
阅读 1 分钟
183
洗牌算法在日常项目中非常实用,特别是在需要随机打乱数组元素或者集合顺序的情况下。在 JavaScript 中,一个常见的洗牌算法是 Fisher-Yates 算法,也称为 Knuth 洗牌算法。这个算法的基本思路是从数组末尾开始,依次将当前元素与之前随机位置的元素交换,直到整个数组被遍历过一遍,这段代码实现了一个经典的数组洗牌算...
利用reduce实现数组分组
兔子先森
4 月 24 日
阅读 1 分钟
156
这个 arrGroup 函数的作用是将数组 arr 中的对象按照 type 属性进行分组,将相同 type 的对象的 name 值合并到同一个数组中。最终输出一个对象,键是 type 的值,值是对应的 name 数组。
在树中查找指定id找到所有直属父级节点id
兔子先森
4 月 23 日
阅读 3 分钟
210
通过递归的方式实现 {代码...}
微信小程序获取和修改用户头像信息
兔子先森
4 月 22 日
阅读 1 分钟
206
这里主要用到button的open-type功能,官网已有说明:给button设置open-type="chooseAvatar",来使bindchooseavatar方法生效,在bindchooseavatar指定的函数中获取用户的头像信息
eslint代码规范以及表达式
兔子先森
4 月 21 日
阅读 4 分钟
296
● 使用两个空格进行缩进。eslint:indent● 除需要转义的情况外,字符串统一使用单引号。eslint:quotes● 不要定义未使用的变量。eslint:no-unused-vars● 关键字后面加空格。eslint:keyword-spacing● 函数声明时括号与函数名间加空格。eslint:space-before-function-paren● 字符串拼接操作符 (Infix operators) 之间要留空...
原生微信小程序遇到的一些坑和解决方案
兔子先森
4 月 20 日
阅读 4 分钟
237
原生微信小程序的输入框绑定值不是双向的,也就是说,我们value绑的值是data中的,但是输入框输入的时候是无法修改data中对应的值的,所以我们需要绑定一个事件,在事件中修改data中对应的值。这里的事件使用输入时的触发事件bindinput,每次输入就会触发。
给formData添加参数,处理基本类型、数组、对象
兔子先森
4 月 19 日
阅读 3 分钟
252
深层递归给formData循环添加参数深层递归给formData循环添加参数,处理基本类型、数组、对象、数组套对象、对象套数组、对象数组多层嵌套 {代码...} JSON.stringify序列化更简单的方法,直接使用JSON.stringify序列化,让后端反序列化,不用深层递归 {代码...}
微信小程序分包加载
兔子先森
4 月 18 日
阅读 1 分钟
372
当我们程序太大的时候,打开小程序就会比较慢,此处就需要用到分包加载,按照模块划分不同的包,让用户在需要的时候才加载对用的模块,也就是用户在进入某些页面的时候才下载该页面的资源,提高小程序的打开速度,以及首次加载资源的速度。
微信小程序数字转中文wxs
兔子先森
4 月 17 日
阅读 2 分钟
395
微信小程序场景: 传入数字,转换成天数,比如:index = 1 转换后则为 一,在页面中的应用就是<view>第{{index}}天</view>,转为第几天。
微信小程序在页面内调用函数-wxs封装以及公共js函数封装
兔子先森
4 月 16 日
阅读 2 分钟
344
注意var getMax这个位置只能使用var另外,wxs其实是页面的js脚本,能够处理一些逻辑,wxs支持es5语法,箭头函数在wxs中是不受支持的,在小程序页面中会被解析为<view>这种的括号。wxs无法使用wx.showTost这种的wx原型函数。关于wxs的语法请看文档:[链接]
前端滚动条触底事件
兔子先森
4 月 15 日
阅读 2 分钟
307
主要逻辑:1、获取滚动盒子2、获取盒子的总高度3、获取盒子的可视高度4、当前盒子的的滚动高度5、(滚动高度 + 可视高度 >= 盒子的总高度) = 元素触底
js根据当前日期前推指定日期
兔子先森
4 月 15 日
阅读 2 分钟
267
条件:1、昨天是前推天数的最后一天2、向前推指定天数3、获取前推指定天数的第一天和最后一天 {代码...} 运行结果:
原生微信小程序组件封装和传值-调用组件内方法
兔子先森
4 月 14 日
阅读 2 分钟
309
封装组件1、在components文件加下新建组件文件夹,在该文件夹下新建组件2、在app.json中注册该组件 {代码...} 3、子组件1、组件的json中,设置该页面为组件 {代码...} 2、组件js {代码...} 4、父组件1、父组件的json中引入子组件 {代码...} 2、页面使用 {代码...} 父传子父组件页面 {代码...} 子组件页面 {代码...} 子传...
网页快捷图标在苹果电脑桌面图标槽中铺满
兔子先森
4 月 13 日
阅读 1 分钟
392
以若依框架为例:在项目的public文件夹中修改网页logo,该logo就是页面的logo该图标的大小必须是 64 * 64其它大小的图标浏览器会自动缩放,导致无法铺满。最终图标会完整铺满整个图标槽如果你的图标大小超过 64 * 64 那么图标会完全铺满整个图标槽,具体还需要你自己真机实验。
通过for...of循环顺序调用Promise
兔子先森
4 月 13 日
阅读 1 分钟
291
● beforeUpload 是一个 async 函数,因此可以在其中使用 await。● for 循环遍历 fileList 数组中的每个 file。● await upload(file) 会等待 upload 函数返回的结果,然后再继续执行下一行代码。
前端Mock.js模拟接口数据-Mockjs和vite-plugin-mock的创建和应用
兔子先森
4 月 12 日
阅读 7 分钟
427
如果启动项目终端报错:mock error: Package subpath './es/createProdMockServer' is not defined by "exports" 说明你的版本可能有问题,应该把mockjs切到2.9.6的版本
vue3利用keep-alive缓存组件
兔子先森
4 月 11 日
阅读 4 分钟
341
keep-alive标签可以让组件持续存活,避免路由刷新造成的页面数据丢失。加入你在A组件填写表单,切换到B组件,此时再返回A组件,正常情况下,组件会刷新,数据会丢失。如果该页面被keep-alive缓存,那么路由跳转切换后,数据还在。我们来看官方示例:keep-aliveKeepAlive
简易Proxy监听数据变化
兔子先森
4 月 10 日
阅读 1 分钟
400
数据变化的前提是变化之前的数据和当前要修改的数据不一致,我们在做监听时候不是单纯的判断数据是否变化,而要对原始数据和当前修改数据进行比对,如果原始值与当前值不匹配,则说明数据发生变更。这种比对的优点在于你可以监听到当前操作的是那条数据,可以对当前数据做关联性操作。
js判断是否是空对象
兔子先森
4 月 9 日
阅读 1 分钟
329
如果传入的参数可能不是对象(如 null、undefined 或其他类型),需要先进行类型校验obj.constructor === Object 是为了确保传入的是普通对象(而非数组、null 或继承对象)
一维数组转化为树结构的-无子节点置空children:null
兔子先森
4 月 9 日
阅读 3 分钟
355
将一维数组转化为树结构的函数,子节点的parentId等于父节点的id,如果children内没有任何子节点,则置空为children:null
微信小程序用户隐私API调用
兔子先森
4 月 9 日
阅读 2 分钟
368
由于用户隐私保护的政策执行,我们在调用涉及到用户隐私的API时,未更新用户隐私保护协议是无法直接调用的,小程序会默认判断是否更新用户隐私保护,并根据用户隐私保护中的协议来判断是否可以调用对应的API,如开发者调用的API在用户保护协议中未声明,小程序则会默认禁用该API。例如:wx.chooseLocation选择地址API,...
根据parentId将一维数组转为树结构
兔子先森
4 月 9 日
阅读 3 分钟
427
将乱序的一维数组根据parentId转化为树形结构,子节点放在children下 {代码...} {代码...}
微信小程序observers监听数据变化
兔子先森
4 月 8 日
阅读 2 分钟
401
observers可以监听自定义组件数据,它是微信小程序提供的一个监听函数,可以用来监听组件中data、properties中数据的变化。 {代码...} 注意:在observers中使用箭头函数会因为this指向问题导致setData报错 {代码...} 你也可以监听多个值的变化 {代码...} 数据监听器支持监听属性或内部数据的变化,可以同时监听多个。一...
error Unexpected mutation of "xxx" prop vue/no-mutating-props
兔子先森
4 月 7 日
阅读 1 分钟
458
原因是在v-model中直接修改了prop的值导致的,截图如下:报错信息:prop的值无法直接做双向绑定,需要用toRefs解构成响应式
vant弹窗:van-dialog弹窗异步关闭
兔子先森
4 月 7 日
阅读 3 分钟
407
有时候我们需要通过弹窗去处理表单数据,在原生微信小程序配合vant组件中有多种方式实现,其中UI美观度最高的就是通过van-dialog嵌套表单实现。通常表单涉及到是否必填,在van-dialog的确认事件中直接return是无法阻止对话框关闭的,你需要通过异步关闭对话框的方式实现表单校验后的对话框关闭。只有当表单中的必填项全...
微信小程序数据可视化-echarts动态渲染和按需加载
兔子先森
4 月 6 日
阅读 4 分钟
456
移动端设备中,难免会涉及到数据的可视化展示、数据统计等等,本篇主要讲解原生微信小程序中嵌入echarts并进行动态渲染,实现数据可视化功能。
微信小程序地图map的创建和使用
兔子先森
4 月 5 日
阅读 2 分钟
368
微信小程序提供了一个内置地图组件map,官网:mapmap组件提供了地图展示、交互、叠加点线面及文字等功能,同时支持个性化地图样式,可结合地图服务 API 实现更丰富功能。在页面中只需要使用map标签,定义好地图大小即可生成一个地图
微信小程序配置绝对路径
兔子先森
4 月 4 日
阅读 1 分钟
331
官方文档: resolveAlias在app.json中新增resolveAlias配置resolveAlias 进行的是路径匹配,其中的 key 和 value 须以 /* 结尾。通常情况下我们引入绝对路径会以@开头,请看下面的配置
1
(current)
2
3
4
5
下一页
1
(current)
下一页