自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小程序的冷热启动以及强制更新

小程序启动后,此时小程序处于打开状态,用户关闭小程序或离开微信,在短时间内小程序并不会被销毁,此时小程序处于后台状态,这个时候如果用户再次进入到小程序,就是从后台状态切换到前台状态,此时小程序是热启动。但如果用户过了很久都没有再进入小程序,那么这个时候小程序可能被销毁,等用户再次打开这个小程序,此时小程序需要重新加载启动,即冷启动。如果用户是首次打开小程序,小程序也需要重新加载启动,那么这种情况也属于冷启动:冷启动的小程序,会先执行app.js中的onLaunch和onShowonLoadonShow。

2024-04-17 01:06:55 410

原创 手写前端控制并发任务

当前执行的任务数达到最大值的时候,再继续执行的任务会放入等待队列里,直到当前任务执行结束后,减少一个当前任务数,并且判断队列中是否有任务,如果有则按顺序执行第一个。主要通过异步等待队列执行的原理。

2024-04-16 16:17:27 232

原创 前端数组转树结构

这里主要采用的是递归的方法。

2024-04-16 13:30:59 86

原创 使用var为什么会发生变量提升?

var定义变量时,会执行声明变量和初始化变量,所以已经有了变量实例,但是没有赋值,所以就是undefined,let定义变量时,仅仅执行了变量声明,初始化和赋值是在代码执行时才执行,所以仅仅声明了变量,没有生成变量实例,出现暂时性死区,无法访问到变量,所以就直接报错了。对于代码执行来说,分为两个阶段,准备阶段和执行阶段,准备阶段会创建作用域,作用域链,变量,形参等的声明,但是此时没有执行赋值语句,所以声明的变量为undefined,对于var是undefined,但是对于let定义的变量会直接报错。

2024-04-16 11:25:06 161

原创 手写promise

then方法,then接收两个回调,一个是成功回调,一个是失败回调;当Promise状态为fulfilled执行成功回调,为rejected执行失败回调;Promise状态不可逆,第一次成功就永久为fulfilled,第一次失败就永远状态为rejected;Promise中有throw的话,就相当于执行了reject。执行了resolve,Promise状态会变成fulfilled;执行了reject,Promise状态会变成rejected;Promise中有throw的话,就相当于执行了reject;

2024-04-15 16:04:09 194

原创 express服务器 authorization 前端获取不到的问题

其实这的原因是跨域的问题浏览器无法显示所有的响应头,需要添加设置Access-Control-Expose-Headers即可。服务器生成token 设置在响应头,但是前端获取不到。

2024-04-13 23:21:19 241

原创 手写call,apply,bind,new

如果bind返回的参数 作为构造函数使用,那么这个this的指向就无效了。三种情况都是改变this的指向,不同的是bind返回的是一个函数。

2024-04-13 00:33:35 191

原创 关于实现点击区域控制组件显示隐藏

原理比较简单,就是获取整个document的点击事件,然后产看查看当前点击元素是否包含目标元素即可。

2024-04-12 15:05:35 108

原创 构造函数,原型对象,对象实例 以及原型链的关系

当我们使用构造函数new的方式创建实例对象,此时构造函数的.prototype属性就是实例对象的原型对象,实例对象可以通过.__proto__来访问到原型对象,同时实例对象会继承原型对象的属性方法。当我们访问一个对象的属性,如果当前对象没有这个属性,那么就会去原型上找,如果原型上没有,那就去原型的原型去找,直到找到为止,null是最顶层,这种链式的访问就是原型链。构造函数和原型对象的关系其实是被包含的关系,通过prototype.constructor就和可以访问到构造函数。

2024-04-11 20:18:36 174

原创 关于mysql mac 输入mysql -uroot -p 不能访问的问题

默认shell为zsh,说明安装mysql时部署的全局变量bash的效用没生效,需要配置的为。先查看mac本身安装的shell。退出终端,重新打开后输入。

2024-04-10 17:03:16 333

原创 微信小程序使用iconfont

复制内容到小程序的style文件夹下。进入项目,点击生成代码,或更新代码。进入iconfont,添加至项目。最后引入到app.wxss。

2024-04-09 13:43:52 481

原创 关于uniapp小程序的分包问题

由于使用插件默认会导入到uni_modules文件夹下,根目录下的uni_modules和components下的文件打包时会全部默认打包到主包中,那么这些插件和公共组件也需要分包处理,分包需要的插件可以放置到分包的目录下,分包下创建components文件,放入分包页面所用到的公共组件。对于uni_modules中的插件,如果是页面单独使用,那么可以放在对应分包里的页面文件下单独引入即可。如果分包公共使用的放在分包下的components文件夹下引入使用即可。分包也可以分多个,按照实际情况分包即可。

2024-02-28 21:04:12 1343

原创 自定义搭建管理系统

2.左侧Sider的路由控制,搭配tab组件,以及面包屑,完成路由各种情况的跳转。6.页面开发,主要使用antd,echarts等工具,假数据使用mock假数据。tab控制Sider菜单以及面包屑,包括左右跳转以及关闭全部;4.处理非系统路由,进入500页面,也不出现在layout中。3.路由拦截,登录页面是不可以出现在layout布局中的。1. 基建布局,使用antd的Layout布局。路由的变化控制tab,sider菜单以及面包屑。左侧菜单控制tab以及面包屑;代码:​​​​​​​。

2024-02-25 21:08:42 625

原创 react 实现路由拦截

简单介绍下项目背景,我这里做了一个demo,前端使用mock数据,然后实现简单的路由拦截,校验session是否包含用户作为已登录的依据,react-router-dom是v6。不像vue可以设置登录拦截beforeenter,react需要我们自己加。Surpense组件是react组件懒加载的时候,路由跳转了,由于网络原因,组件内容无法及时过去,不添加会报错。

2024-02-18 11:15:48 679

原创 微信小程序构建npm

3.打开工具,点击构建npm即可,先写到这,因为还有些坑这次没踩到,下次碰到到再补。

2024-02-04 16:51:09 442

原创 记录关于node接收并解析前端上传excel文件formData踩的坑

尤其要注意formData对象进行append,下面写法有问题,会造成下面的情况,传给后端是非二进制流。这种情况下,文件不会出现在files里,反而会出现在fields里。

2024-02-02 23:33:04 612

原创 Python入门(一)

input函数输出出来的内容是字符串。

2024-01-22 23:29:53 1587 3

原创 vue源码(一)

npm i:添加 --sourcemap此处使用vue的版本是2.6目录:dist 发布目录examples 范例flow 试代码scripts 构建脚本src 源码compiler 编译器相关core 核心代码components 通用组件如keep-aliveglobal-api 全局apiinstance 构造函数等observer 响应式相关utilvdom 虚拟DOM相关......术语解释:runtime 仅包含运行时,不包含编译器。

2024-01-01 17:33:35 842

原创 简单自定义vuex的设计思路

vuex集中式存储管理应用所有组件的状态,并以响应的规则保证状态以可预测的方式 发生变化。步骤:1.Store类,保存选项,_mutations,_actions,getters2.响应式状态:new Vue方式设置响应式。3.get state 和 set state commit dispatch4.install方法 挂载store到vue的原型对象上,所有实例都可以读取到。

2023-12-06 17:26:00 969

原创 自定义插件vue-router简单实现hashRouter设计思路

此时我们不再使用current来做响应式,使用matched数组获取匹配关系,VueRouter实例创建时调用match方法,获取路由数组,并且在路由发生变化时重新获取路由数组matched。思路:参考源码思路,给当前routerView深度标记,然后根据当前页面路由获取当前路由数组,其中包括一级和二级路由,然后使用depth获取对应的组件,然后并渲染。但是每次都要去遍历循环字典,也不是很合理,我们可以优化一下,缓存一下path和route映射关系。1.挂载 vue.prototype.$router。

2023-12-06 16:56:02 485

原创 vue2框架简易版响应式设计(观察者模式)

添加数据劫持方法// Vue.js//Observer专门用于数据劫持data;get() {console.log(`使用了${key}这个属性`);},set(val) {console.log(`修改了${key}属性`, val);})walk() {})age:11对于data来说,我们自己数据劫持存了一份在$data,并且还将$data中每个数据都再次存在了vue实例上,创建Vue类。//$data上的所有数据都要数据劫持//$data存放所有的数据。

2023-12-03 22:54:16 635

原创 关于数据劫持原理(vue2和vue3)

数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。

2023-12-03 17:46:31 556

原创 关于qiankun沙箱sandbox(面试题)

完成了一个简易沙箱,但是会遍历window的所有属性,非常消耗性能,方案不是很可取,与此同时,影响了window上的值,如果多个微应用就可能会产生冲,只能激活一个微应用。主应用和子应用,相同的全局变量,可能会发生冲突,子应用和子应用之间,相同的全局变量,也可能会发生冲突。不需要遍历window上的所有属性,性能良好,但是依然改变的是window上的值,但同一时间还是只能激活一个微应用。这种ProxySandBox不需要遍历window上的所有属性,性能良好,同一时间可以激活多个微应用互不干扰。

2023-12-02 22:02:43 776

原创 Uniapp小程序开发踩坑日记

最近开发一套微信音乐小程序框架使用vue3,但还是要吐槽一下,有时候会突然报错,怎么也调试不好,过段时间自己又好了,这让开发者体验极差。下面说下遇到的一些问题。如果使用vue2 子组件的暴露给父组件的写法会报这个警告。

2023-11-18 20:38:10 247

原创 Electron 开发页面应用

Electron集成了包括chromium(理解为具备chrom浏览器的工具),nodejs,native apischromium:支持最新特性的浏览器。nodejs:js运行时,可实现文件读写等。native apis :提供统一的原生界面能力。直接与操作系统通信。例如:系统通知,快捷键等。底层硬件的参数等。

2023-11-08 23:46:57 620

原创 three.js

对于three.js而言,需要定义相机在网页上输出的画布尺寸,canvas画布:threejs虚拟相机渲染三维场景在浏览器网页上呈现的结果称为canvas画布。//画布宽高关于material的属性,可以直接通过其属性名直接访问,设置需要通过set方法来执行,包括其他的对象属性都可以这样访问以及膝盖。//读取属性值//设置属性值shininess: 30,//高光强度属性默认30specular: 0x444444, //默认是深灰色});

2023-10-06 16:57:45 436

原创 分享特制背景

使用canvas画布完成。

2023-09-25 22:41:02 55

原创 Content-Type的取值

接口发送参数、接收响应数据,都需要双方约定好使用什么格式的数据,例如 json、xml。只有双方按照约定好的格式去解析数据才能正确的收发数据。而 Content-Type 就是用来告诉你数据的格式,这样我们才能知道怎么解析参数。

2023-09-22 22:43:47 271

原创 原生ajax

Asynchronous JavaScript and xml 异步的 js 和 xml(数据承载方式) ,本质:使用js提供的异步对象XMLHttpRequest 异步的向服务器提交请求,并且接受服务器响应回来的数据。

2023-09-22 22:04:25 266

原创 js兼容性的汇总

js兼容问题大多是在ie浏览器低版本以及ie浏览器和不同普通浏览器的差异。

2023-09-21 23:25:43 349

原创 关于token续签

通常我们会对token设置一个有效期,于是,就有了token续签的问题。由于token并没有续时机制,如果不能及时的替换掉过期的token,可能会拦截用户正常的请求,用户只能重新登录,如果提交的信息量很大,会给用户带来很不愉快的用户体验。

2023-09-20 23:34:55 342

原创 Nodejs 相关知识

没有任何路径匹配,万能中间件,任何数据都可以返回。使用4个参数,(err,req,res,next)err是参数状态码。

2023-09-20 00:11:03 443

原创 TypeScript 语法

super函数调用:当子类继承父类后,有了自己的构造函数,那么相当于父类的构造函数被重写,那么将不会调用父类的构造函数会报错,此时需要调用super函数来执行父类的构造函数。abstact类:当一个类只用于继承时,那么使用抽象类,且不能用来创建对象,抽象父类的公共方法,需要子类必须重写抽象方法,不用写函数体,抽象方法只能写在抽象类中。

2023-08-13 23:24:57 1123 2

原创 base64转二进制流,file文件

img标签src属性,可以直接使用base64字符串,base64需要先解码,然后再转为文件。img标签src属性,可以直接使用base64字符串,base64需要先解码,然后再转为流。

2023-08-09 22:25:26 656

原创 React Hooks

当我们想在两个函数之间共享逻辑时,我们会把它提取到第三个函数中必须以 use 开头,如不遵循,由于无法判断某个函数是否包含对其内部hook的调用,React将无法自动检查你的hook是否违反了hook规则,与vue3中自定义组合式api用法相同。

2023-08-06 23:17:48 932

原创 vue3的语法

vue3不要和vue2混用,vue2可以访问到setup中的数据,但setup不能访问到vue2的数据,如果有重复数据,setup的优先级更高。props:值为对象,包含组件外部传递过来的,且组件内部声明接收了的属性,想要获取props的属性,一定需要props接收参数,这点和vue2相同,倘若不使用props接收,那么数据会存储在context参数中的attrs属性中。通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写,属性的添加,属性的删除等,比起vue2多出了增加和删除属性的监听。

2023-08-01 00:03:02 467

原创 H5拖拽功能draggable

H5提出了拖拽的功能,被拖动元素(除img,a标签,默认可以拖动)需要添加。ondragover 应用于目标元素,当停留在目标元素上时调用(持续触发)ondragleave 应用于目标元素,当鼠标离开目标元素时调用。ondragenter 应用于目标元素,当拖拽元素进入时调用。ondrop 应用于目标元素,当在目标元素上松开鼠标时调用。ondrag 元素正在拖动时触发(整个过程持续触发)ondragleave 当鼠标离开拖拽元素时调用。ondragstart 用户开始拖动元素时触发。

2023-07-23 18:46:54 1058

原创 vue生命周期前后都做了哪些事情?

进行vue实例初始化,在这个时候开始完成的是vue实例自身对象注入,内部使用相关事件和对应生命周期函数初始化当这个方法执行的时候,vue实例仅仅是完成内部事件和生命周期函数数据的注入,跟语法的校验,我们编写的data,method开始注入在这个时候函数执行的时候vue实例已经完成自定义data,method,computed属性初始化,以及语法效验,vue实例已经生成,但还没有生成dom。

2023-07-22 23:51:41 263

原创 js的几种排序

【代码】js的几种排序。

2023-07-22 21:30:01 176

原创 Vue多层组件之间数据通信

使用过程中,如果有存在中间的组件截取了props,那么这个值将不会继续向下传递。相反传递给父元素则没有这个问题。

2023-07-21 23:00:33 550

electron配套资源

electron配套资源

2023-11-09

分享特制背景,使用canvas

分享特制背景,使用canvas

2023-09-25

Nodejs 相关知识配套资源

Nodejs 相关知识配套资源

2023-09-20

关于webpack搭建的资源,有问题欢迎指正

文章 :使用Webpack5搭建项目 对应文件: 文件myWebpack:只有基本的配置 文件myWebpackAdvance:进阶配置 文件myWebpackCodeSplit:示例文件,可忽略 文章 :使用Webpack搭建项目(react篇) 对应文件: 文件webpack-react:react项目搭建 文章 :使用Webpack搭建项目(vue篇) 对应文件: 文件webpack-vue:vue项目搭建

2023-04-29

空空如也

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

TA关注的人

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