自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 uniapp开发app时的本地缓存以及封装

利用uniapp开发app的项目中,遇到需要频繁访问的资源,如图片或者其他静态文件时,为了降低服务器的网络请求和节省网络宽带成本,可以通过本地缓存的方式

2024-03-01 14:52:00 2018 1

原创 uniapp用axios 真机调试报错:TypeError: adapter is not a function

封装request请求解决axios出现adapter is not a function

2023-03-07 15:10:22 1216

原创 Uni-app/小程序 拖拽排序实现方法

首先用movable-area制作一个拖拽的范围

2022-06-22 09:01:40 1704

原创 git基础命令

新建分支1.切换到主干分支git checkout master2.创建并切换到新分支git checkout -b dev3.更新分支代码并提交git add .git commit -"新建分支"git push origin dev合并分支假如在dev分支上开发完项目执行以下命令:git add .git commit -m"备注"git push -u origin dev合并dev分支到master分支:1.首先切换到master分支git checkout

2022-03-08 09:36:24 166

原创 git pull时候报错443

报错:Failed to connect to github.com port 443 after 21098 ms: Timed out原因:网络请求超时,可以添加代理/取消代理解决设置代理:git config --global https.proxy取消代理:git config --global --unset https.proxy最后:git pull...

2022-03-01 10:13:36 1153

原创 微信小程序-tempfilePath文件的上传问题

项目场景:需要微信小程序利用uni.getRecorderManager()录音到服务端进行语音测评问题描述:1.微信小程序录音机回调的tempfilePath为临时路径,浏览器无法打开,所以导致不能上传文件到服务器端2.在上传到服务器端后服务器报500错误原因分析:1.拿不到录音临时文件,导致上传不了2.微信开发者工具录制音频文件导致上传到服务器端报错不管是 startRecord 还是 getRecorderManager 都只能在 真记上进行调试才能获取真实的场景, 在工具上进行编写

2022-02-10 15:49:51 4239

原创 ES6新特性

1.变量声明:const和letES6推荐使用let声明局部变量,相比之前的var(无论声明在何处,都会被视为声明在函数的最顶部)let和var声明的区别:var x = '全局变量';{ let x = '局部变量'; console.log(x); // 局部变量}console.log(x); // 全局变量let表示声明变量,而const表示声明常量,两者都为块级作用域;const 声明的变量都会被认为是常量,意思就是它的值被设置完成后就不能再修改了:const a = 1

2021-04-09 10:04:43 121

原创 函数防抖和函数节流

function debounce(fn, delay) { // fn = test let timerId = null; return function () { let self = this; let args = arguments; timerId && clearTimeout(timerId); timerId = setTimeout(fun..

2021-04-07 21:39:10 101

原创 进程和线程

- 什么是程序?程序是指编译之后存储在磁盘上的一个二进制文件, 会占用磁盘空间, 但不会占用系统资源什么是进程?进程是指程序在操作系统中的一次执行过程, 是系统进行资源分配和调度的基本单位例如:启动记事本这个程序, 在系统中就会创建一个记事本进程再次启动记事本这个程序, 又会在系统中创建一个记事本进程程序和进程的关系就好比剧本和演出的关系剧本对应程序, 演出对应进程. 同一个剧本可以在多个舞台同时演出互不影响, 同一个程序可以在系统中开启多个进程互不影响所以程序和进程的关系是1:N,

2021-03-23 10:54:57 152

原创 JS--继承

ES6之前的继承方法基本思想:1.1在子类的构造函数中通过call/apply借助父类的构造函数1.2将子类的原型对象修改为父类的实例对象(即通过prototype和构造函数实现) function Person(myName, myAge) { this.name = myName; this.age = myAge } Person.prototype.say = function () { console.log(this.

2021-03-23 09:37:26 113

原创 JS--基本数据类型

在JS中一共有六种数据类型1.String 字符串(基本数据类型)2.Number 数值(基本数据类型)3.Boolean 布尔值(基本数据类型)4.Null 空值(基本数据类型)5.Undefined 未定义(基本数据类型)6.Object 对象(引用数据类型)JavaScript中只有基本数据类型和引用数据类型如何查看数据类型?和C语言一样, 使用typeof操作符可以用来检查数据类型。使用格式:typeof 数据,例如 typeof 123; typeof num;console

2021-03-22 19:46:19 274

原创 JS-闭包

1.什么是闭包(closure)?闭包是一个特殊的函数2.如何生成一个闭包?当一个内部函数引用了外部函数的数据(变量/函数)时,那么内部的函数就是闭包所以只要满足"是函数嵌套",“内部函数引用外部函数数据”3.闭包特点:只要闭包还在使用外部函数的数据,那么外部的数据就一直不会被释放也就是说可以演唱外部函数数据的生命周期4.闭包注意点:当后续不需要使用闭包的时候,一定要手动将闭包设置为null,否则会出现内存泄漏function hello(){ var num = 100; va

2021-03-20 08:50:48 144

原创 深拷贝和浅拷贝

深拷贝:修改新变量的值不会影响原有变量的值默认情况下基本数据类型都是深拷贝基本数据类型:一:for(let key in p1){p2[key] = p1[key]}二:assign方法可以将第二个参数的对象的属性和方法拷贝到第一个参数对象中Object.assign(p2,p1)引用数据类型:class person{ name = "smh"; cat = { age:3 }; scores = [1, 3, 5]; } let p1 = new

2021-03-18 15:01:06 133

原创 JS-原型链--函数与对象的关系

1.Function函数是所有函数的祖先函数2.所有构造函数都有一共prototype属性3.所有原型对象都有一共constructor属性4.所有函数都是对象5.所有对象都有一个__proto_属性 function Person(myName, myAge) { this.name = myName; this.age = myAge; this.currentType = "构造函数中的type"; this.say =

2021-03-05 21:12:40 293

原创 js中作用域和预解析问题

作用域链需要明确:1.1ES6之前定义变量通过var ES6之后定义变量用let1.2.ES6之前没有块级作用域,只有全局作用域和局部作用域ES6新增加了块级作用域 但是通过let定义变量并无差异(都是局部作用域)1.3.ES6之前函数大括号外都是全局作用域1.4.ES6之前函数大括号中都是局部作用域ES6之前作用域2.1全局作用域我们又称为0级作用域2.2定义函数开启的作用域就是1/2/3…级作用域2.3JavaScript会将这些作用域链接在一起形成一个链条,这个链条就是作用域链0

2021-03-04 16:47:45 203 1

原创 VueX优化

1.#mapGetters 辅助函数mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性://首先导入mapGettersimport { mapGetters } from 'vuex'export default { // ... computed: { // 使用对象展开运算符将 getter 混入 computed 对象中 ...mapGetters([ 'doneTodosCount', 'anotherG

2020-10-22 20:41:43 368

原创 Vue中使用滚动组件iscroll

首先安装iscrollnpm install iscroll创建scroll组件<template> <div id="wrapper" ref="wrapper"> <slot></slot> </div></template><script>import IScroll from 'iscroll/build/iscroll-probe' //专业版本可以监听滚动的细节export de

2020-09-07 21:38:01 2452

原创 Vue实现图片懒加载

首先下载安装vue-lazyloadnpm i vue-lazyload -S然后在main.js中引入import VueLazyload from ‘vue-lazyload’Vue.use(VueLazyload)Vue.use(VueLazyload, {// 可以通过配置loading来设置图片还未加载好之前的占位图片loading: require(’./assets/images/loading.png’)})最后给img标签的src换上 v-lazy...

2020-09-07 17:13:00 514

原创 Vue组件的按需加载

通过improt xxx from xxx 的方式加载组件,无论组件有没有被用到,都会被加载进来实现Vue组件的按需加载const 组件名 = (resolve) => {import(’…/views/组件名’).then((module) => {resolve(module)})}

2020-09-06 09:51:23 279

原创 Vue生命周期 (图解+代码解析)

<body><!-- 1.什么是生命周期方法? 和wbpack生命周期方法一样,都是在从生到死的特定阶段调用的方法 ps:生命周期钩子 = 生命周期函数 = 生命周期事件 2.vue生命周期方法分类 2.1创建期间的生命周期方法 beforeCreate: created: beforeMount: mounted: 2.2运行期间的生命周期方法 before.

2020-08-31 13:05:14 730

原创 v-if 和 v-show的作用和区别

作用:都是条件渲染指令区别:1.无论v-show的值为true或者false,元素都会存在于html页面中; 而v-if的值为true时,元素才会存在于html页面中, v-show指令是通过修改元素的display属性来实现的## v-if是动态地向DOM树内添加或者删除DOM元素,v-show是通过设置DOM元素的display样式属性控制显隐的## v-if是"真正的"条件渲染,因为它会确保在奇幻过程中条件快内的事件监听器和子组件适当的销毁和重建, v-if也是惰性的,如果在初始渲染

2020-08-16 16:41:56 637

原创 Vue中实现过渡动画

Vue中实现过渡动画1.如何给Vue控制的元素添加过渡动画1.1将需要执行动画的元素放在transition组件中1.2当transition组件中的元素显示时会自动查找.v-enter/.v-enter-active/.v-enter-to类名当transition组件中的元素隐藏时会自动查找.v-leave/.v-leave-active/.v-leave-to类名1.3我们只需要在.v-enter和.v-leave-to中指定动画开始的状态在.v-enter-active和.v-leave

2020-08-16 16:06:38 760

空空如也

空空如也

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

TA关注的人

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