
JavaScript
土拨鼠的博客
这个人很帅,什么都没留下……
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vue3+Axios网络请求封装
Axios是基于Node.js的HTTP客户端,也是一款广泛使用的网络请求库。它具有使用简单、可扩展性高、易用性好等特点,因此成为大多数前端开发者的首选,从而衍生了很多基于axios封装的网络请求库。今天我们要介绍的网络请求库是基于axios封装的,命名为Axios,它实现了自动携带token、拦截请求和响应等操作,能够处理请求重复、超时和错误状态码等异常情况。原创 2023-05-30 00:51:52 · 3092 阅读 · 1 评论 -
函数节流与防抖
本文介绍了节流和防抖这两种函数优化执行频率的方法。节流是控制事件触发频率的方法,可以节省资源,控制事件频率。防抖也是限制事件触发频率的方法,若在规定时间内再次触发,则重新计算时间,最后只有最后一次事件会被处理。这两种方法都可以用于优化程序执行效率。原创 2023-05-25 12:02:24 · 240 阅读 · 0 评论 -
js将数组混合在一起后打乱排序
在上面的示例中,sort()方法的参数是一个函数,该函数比较两个元素并返回排序的结果。在这里,我们使用了Math.random()函数生成0到1之间的随机浮点数,然后用该随机数来比较两个元素。如果返回正数,则第二个元素更小,将其放在前面。可以使用sort()方法来打乱已经混合在一起的数组的排序。sort()方法可以根据指定的函数来排序数组的元素。为了打乱数组的顺序,我们可以使用Math.random()生成随机数,然后通过比较来打乱元素的顺序。通过这种方式,我们可以用随机顺序打乱一个数组的排序。原创 2023-04-05 11:18:03 · 247 阅读 · 0 评论 -
uni-app网络请求封装(优化完整版)
很久之前写的一个请求封装,现在看来还是代码量太大了,现在做一个优化,简单一点的。原创 2023-03-05 21:43:17 · 3884 阅读 · 3 评论 -
uniapp九宫格布局图片集NineGridLayout
uniapp九格布局图片集,根据图片1-9张分别不同展示视图原创 2023-02-09 20:17:13 · 2184 阅读 · 0 评论 -
Node服务端框架Express-Sequelize-Mysql模型架构设计
Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能。原创 2022-07-02 11:07:07 · 1424 阅读 · 0 评论 -
@click点击事件冲突解决(uniapp阻止事件冒泡)
@click点击事件冲突解决原创 2022-06-20 18:34:51 · 3795 阅读 · 0 评论 -
uniapp数据更新视图不更新的问题
强制更新如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做错了事。你可能还没有留意到数组或对象的变更检测注意事项,或者你可能依赖了一个未被 Vue 的响应式系统追踪的状态。然而,如果你已经做到了上述的事项仍然发现在极少数的情况下需要手动强制更新,那么你可以通过 $forceUpdate 来做这件事。this.$forceUpdate()更新某一个元素视图Vue.set( target, propertyName/index, value )向响应式原创 2022-02-22 14:04:35 · 20696 阅读 · 3 评论 -
node上传图片到阿里云oss/指定目录/按照日期生成文件夹
获取配置参数// 初始化Clientlet co = require('co');let OSS = require('ali-oss');let client = new OSS({ region: 'oss-cn-beijing', // 公共云下OSS Region accessKeyId: '**********************', // AccessKey ID accessKeySecret: '**********************' // AccessKey Se原创 2021-11-27 14:54:59 · 2422 阅读 · 1 评论 -
uni-app网络请求封装(完整版)
目录结构(根目录开始)├── api # 所有请求│ └── user.js # 用户请求api├── store # 全局store管理│ └── modules # api模块│ │ └── user.js # 用户请求模块│ └── index.js # 状态管理初始化├── uti原创 2021-09-29 20:09:17 · 16814 阅读 · 24 评论 -
HTML5 Canvas图片模糊问题
关于canvas图片模糊问题最好的办法就使用Window.devicePixelRatioWindow 接口的devicePixelRatio返回当前显示设备的物理像素分辨率与CSS像素分辨率之比。此值也可以解释为像素大小的比率:一个CSS像素的大小与一个物理像素的大小。简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个CSS像素。当处理标准显示器与HiDPI或Retina显示器之间的差异时,这很有用,后者使用更多的屏幕像素绘制相同的对象,从而获得更清晰的图像。语法:value = wi原创 2021-05-29 07:41:28 · 1267 阅读 · 1 评论 -
HTML5 Canvas背景图自适应铺满屏幕宽高 - 已解决图片模糊问题
这里提供的是vue版本的Canvas实例,如需要其它版本可自行更改template<canvas id="myCanvas" :width="rowWidth" :height="rowHeight"></canvas><!-- width跟height是必填,不然后面计算很难排错 -->datadata() { return { rowHeight: '', rowWidth: '' }},mountedmounted() { this原创 2021-05-29 06:19:29 · 3700 阅读 · 1 评论 -
js基于当前值计算百分比
GetPercent(total, num) { // total总数基数(相当于100%) // num当前数值 num = parseFloat(num); total = parseFloat(total); if (isNaN(num) || isNaN(total)) { return "-"; } return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00) + "%";}...原创 2021-05-25 14:13:00 · 1801 阅读 · 0 评论 -
js获取当前时间以及时间戳
当前时间var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)myDate.getDay(); //获取当前星期X(0-6,0代表星期天)myDate.getTime(); //获取当前时间(从1970原创 2021-05-12 23:00:35 · 990 阅读 · 0 评论 -
vue强制更新$forceUpdate()(强制刷同步页面数据)
vue强制更新$forceUpdate()添加this.$forceUpdate();进行强制渲染,效果实现。搜索资料得出结果:因为数据层次太多,render函数没有自动更新,需手动强制刷新。调用强制更新方法this.$forceUpdate()会更新视图和数据,触发updated生命周期。我是在使用多层for循环嵌套时出现的页面没有及时刷新改变后的值的问题( 使用this.$forceUpdate() )使用方法:在方法执行完毕后添加this.$forceUpdate()...原创 2021-05-05 18:29:20 · 1426 阅读 · 0 评论 -
js使用for循环给每个数组添加元素
var arr = [];for (var i = 0; i < arr.length; i++) { arr[i].nickName = "我是小明"; arr[i].age = 18}console.log(arr)// 结果 // arr = [nickName:'我是小明'age:18]原创 2021-05-03 20:45:15 · 7012 阅读 · 5 评论 -
云开发 CloudBase的云函数安全规则配置
编写安全规则顶级 key 表征函数名,特殊的 * 表征所有的函数名通配,匹配时优先匹配函数名,当未匹配时将使用 * 的配置。value 为每个函数单独的调用规则子配置。每个子配置中,key 表示操作名(当前只支持 invoke),value 为 boolean 值或安全规则表达式字符串例如:// client-items为云函数名// 当client-items云函数的invoke为// true(不需要登陆即可访问)的时候// 需要前往环境-登陆授权-打开未登录这个选项才能生效// 否则原创 2021-04-28 23:40:27 · 644 阅读 · 0 评论 -
微信小程序同时查询一个合集里的多个数据(Command.in)
一开始这个问题也是困扰了我许久,后来还是偶然的情况下才发现这个问题在官网早就友解决方案Command.in查询筛选操作符,表示要求值在给定的数组内示例代码// 同时找出state字段中“完成”跟“进行中”的集合db.collection("essay").where({ state: _.in(['完成','进行中'])}).get({ success: console.log, fail: console.error})到这里我相信大家知道怎么去使用了再贴一个,如果要查询的字段是原创 2021-04-28 04:20:39 · 1490 阅读 · 0 评论 -
vant-Image图片组件本地图片无法显示
刚开始遇到这个问题的时候百思不得其解,什么方法都用过了,网络图片路径可以正常显示,唯独本地图片不能显示,开始以为只是路径错了。文档也没有写怎么加载本地图片,到处挖坑。解决办法!!src属性绑定requeir()方法 :src="require('../../../static/img/user-unlogin.png')"解决!也可以绑定data动态修改:// html<VanImage class="headImg" round fit="cover" :src="headImg"原创 2021-04-25 14:11:56 · 1879 阅读 · 1 评论 -
vue动态改变网页标题title
1.了解路由元在路由配置文件里 配置meta标签 是一个对象 里面书写title(每个路由页面对应的标题)router/index.js{ path: '/', name: 'index', component: () => import('@/views/index.vue'), meta: { title: '首页' }}2.全局钩子函数 router.beforeEach(to,form ,next)router.beforeEach是 vue全局的的一个路由的钩子函原创 2021-04-20 16:00:40 · 593 阅读 · 0 评论 -
前端post请求中body和query传参
前端发送请求最常用的是get请求还有post请求get请求只能传query参数,query参数都是拼在请求地址上的post可以传body和query两种形式的参数/* 登陆请求 */export function login(data) { return request({ url: '/api/user/login', method: 'post', data // data就是body参数 })}/* 获取用户信息 */export function ge原创 2021-04-10 16:34:09 · 11872 阅读 · 2 评论 -
微信小程序storage标准封装
/** * Storage标准封装 */const myStorage = { // 存储 set(key, value) { try { wx.setStorageSync(key, JSON.stringify(value)) } catch (err) { return null } }, // 取出数据 get(key) { try { const value = JSON.parse(wx.getStorageSync(key)); if (原创 2021-03-26 15:06:00 · 553 阅读 · 0 评论 -
localStorage封装
localStorage标准封装const myStorage = { //存储 set(key, value) { localStorage.setItem(key, JSON.stringify(value)); }, //取出数据 get(key) { try { const value = localStorage.getItem(key); if (value === null || value === undefined || value === "") {原创 2021-03-16 16:51:52 · 1394 阅读 · 0 评论 -
微信小程序怎么获取到data数据?
var text=this.data.name ,这样就获取到初始化的值page({ data:{ name:"我叫小明" }, showData:function(){ var text = this.data.name }})原创 2021-01-24 13:39:49 · 11358 阅读 · 7 评论 -
vue使用filter过滤器实现简单的搜索功能
// filter来筛选新数组,至于具体怎么去使用就看你要实现什么功能data() { return { list: [ {id: '1', name: 'AAA'}, {id: '2', name: 'BBB'}, {id: '3', name: 'CCC'}, {id: '4', name: 'AAA'}, {id: '5', name: 'BBB'} ], isSearch: 'BBB' // 这里是你要筛选的条件(可以绑定在原创 2020-12-18 14:42:29 · 2509 阅读 · 0 评论 -
uni-app在各平台的条件编译
条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。#ifdef:if defined 仅在某平台存在#ifndef:if not defined 除了某平台均存在%PLATFORM%:平台名称条件编译写法说明#ifdef APP-PLUS 需条件编译的代码 #endif仅出现在 App 平台下的代码#ifndef H5 需条件原创 2020-12-16 16:45:43 · 700 阅读 · 0 评论 -
js计算过去和未来的时间距离现在多少天?
/** * 计算过去和未来的时间距离现在多少天? * 格式 getBeforeDate('2015,5,20') */function getBeforeDate(n){ let now = new Date(); let aftertime = new Date(n); let year = now.getFullYear(); let mon= now.getMonth()+1; let day= now.getDate(); let year_after = aft原创 2020-12-15 14:18:31 · 932 阅读 · 0 评论 -
js获取屏幕可视宽高
/** * 屏幕可视宽度检测 */function bodyWidth(){ let width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; return width;}/** * 屏幕可视高度检测 */function bodyHeight(){ let height = window.innerHeight || document.do原创 2020-12-15 14:16:16 · 563 阅读 · 0 评论 -
js时间戳转时分秒,星期等格式(例如:1分钟前,1小时前)
/** * 时间戳转时分秒,星期等格式(例如:1分钟前,1小时前) 、、可自行修改 */function timeFormat(shape) { // 记录时间 let date = new Date(shape * 1000); //我这里传入的是10位的时间戳 let yearDate = date.getFullYear(); //得到年份 let monthDate = date.getMonth(); //得到月份 let dateDate = date.ge原创 2020-12-15 14:14:07 · 1208 阅读 · 0 评论 -
js时间戳转时间(10位)
/** * 时间戳转时间(10位) */function transitTime(timestamp) { let date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 let Y = date.getFullYear() + '年'; let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() +原创 2020-12-15 14:09:20 · 1159 阅读 · 0 评论 -
js获取当前时间戳(10位)
/** * 当前时间戳(10位) */function timestamp(){ let outcome = Math.round(new Date().getTime()/1000).toString(); return outcome}原创 2020-12-15 14:06:18 · 8328 阅读 · 0 评论 -
uni-app获取状态栏高度
众所周知uniapp的状态栏高度是用css变量去识别的但是要在js里面去操作高度的话是比较麻烦的这里提供一个简单的js去获取状态栏的高度onLoad:onLoad() { this.GetStatusBarHeight();},methods:methods: { GetStatusBarHeight() { let that = this; wx.getSystemInfo({ success: function(res) { res.statusBarHei.原创 2020-12-09 21:43:50 · 9129 阅读 · 0 评论 -
js对象数组求和
var list = [ {'id': 0, 'price': 100}, {'id': 1, 'price': 200}, {'id': 2, 'price': 300}];var strArr = [];for (let i in list) { // price数组下标 strArr.push(list[i]['price'])};console.log(eval(strArr.join('+')))原创 2020-11-12 14:10:15 · 1717 阅读 · 0 评论 -
JS页面滚动监听
window.onscroll = function() { //scrollTop就是触发滚动时的高度 var scroll= document.documentElement.scrollTop || document.body.scrollTop; console.log("当前距离" + scroll);}原创 2020-08-31 21:11:30 · 368 阅读 · 0 评论