自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS获取阿里云oss私有图片需要通过SDK加签名访问问题

对于不允许匿名访问的私有图片文件,不支持通过文件URL直接添加参数的方式处理图片,您需要通过`SDK`的方式将图片处理操作加入签名URL中

2023-10-30 10:08:36 2093 4

原创 前端需要了解的浏览器缓存知识

作为一个前端开发者,每天都在和浏览器打交道,对于浏览器缓存,相信都不会陌生,同时它也是我们日常开发中存在的一个非常重要的优化手段,无论在节省带宽、提高加载和渲染速度、减少网络阻塞,以及提高用户体验上,都有重要的作用。

2023-10-16 23:09:25 1445

原创 Vue源码学习 - 模版编译 和 组件渲染/更新过程

平时开发写的 以及里面的变量、表达式、指令等,不是html语法,是浏览器识别不出来的。所以需要将 template 转化成一个 JS 函数,这样浏览器就可以执行这一个函数并渲染出对应的 HTML 元素,就可以让视图跑起来了,这一个转化的过程,就成为模板编译。

2023-08-02 14:32:59 1304 2

原创 Vue源码学习 - 虚拟Dom 和 diff算法

因为 Diff 算法,计算的就是虚拟 DOM 的差异,所以先铺垫一点点虚拟 DOM,了解一下其结构,再去看Diff 算法原理,循循渐进会更好些。渲染真实的 DOM 时,并不是暴力覆盖原有的 DOM ,而是比对新旧两个vnode(虚拟节点),如果不是同一个节点,删除老的,替换成新的;如果是同一个节点,就复用老节点,增加新节点的属性。

2023-07-31 10:34:58 538

原创 Vue源码学习 - 异步更新队列 和 nextTick原理

在我们使用Vue的过程中,基本大部分的 `watcher` 更新都需要经过 `异步更新` 的处理。而 `nextTick` 则是异步更新的核心。

2023-07-27 17:40:29 797

原创 从Vue层面 - 解析发布订阅模式和观察者模式区别

观察者模式和发布订阅模式作为日常开发中经常使用到的模式,我一直不能做到很好的区分。最近在看Vue的源码,里面设计到了观察者模式,比较感兴趣,就去学习了下,这里做个总结吧。

2023-07-26 17:31:29 2117 2

原创 Vue源码学习 - 数据响应式原理

Vue的数据响应式原理核心就是通过 Object.defineProperty 来拦截对数据的获取和设置。主要分为两类:对象和数组。

2023-07-25 16:49:42 661 1

原创 Vue源码学习 - new Vue初始化都做了什么?

如果觉得直接看源码很枯燥,可以结合前人总结的文章或者视频来看,相信会事半功倍。源码这个东西,一定要多看多思考,要想精通,一遍两遍肯定是不够的。有的时候可能看着一个问题就会想通之前看过但是不明白的另个问题。

2023-07-25 16:39:10 493 2

原创 vue中使用v-for实现两次嵌套循环,判断某子元素是否显示,进行复杂表单校验

有以下一个使用场景,名称111、名称222、名称333,是放在一个大数组里的,然后通过第一层for循环显示出来的。名称333数组里又包含自己的子数组,子数组再通过第二次for循环展示出来。当我们选择发放方式的时候,符合选择条件的只显示自己对应那一行的首发比例。最后对子数组里的每一项进行表单校验。

2023-07-12 14:42:35 4982 3

原创 Git的安装和环境变量的配置

当我们第一次在新电脑上使用git命令的时候,会报错【git 不是内部或外部命令,也不是可运行的程序 或批处理文件】,所以我们需要下载安装Git、配置用户名和邮箱地址、配置环境变量,才能使用Git命令。

2023-05-29 11:55:47 21757 3

原创 使用nvm管理node多版本(安装、卸载nvm,配置环境变量,更换npm淘宝镜像)

最近公司有的项目比较老需要降低node版本才能运行,由于来回进行卸载不同版本的node比较麻烦;所以需要使用node工程多版本管理,后面自己就简单捯饬了一下nvm来管理node,顺便记录一下自己的使用过程以便于后续查找。

2023-05-26 14:28:25 31171 49

原创 JS中常用字符串API - 使用汇总

JavaScript 中有很多字符串(String)API 可以用来操作和处理字符串,下面列举一些常用的:

2023-05-16 17:33:44 612

原创 理解JS的事件循环机制(Event Loop)

JS是单线程语言,但是又可以做到异步处理高并发请求,这时就用到了JavaScript的事件循环机制。

2023-05-15 16:55:01 2572 4

原创 浏览器从输入URL到页面渲染加载的过程(浏览器知识体系整理)

记得最开始学前端知识时,是一点一点的积累,一个知识点一个知识点的攻克。就这样,虽然在很长一段时间内积累了不少的知识,但是,总是无法将它串联到一起。每次梳理时都是很分散的,无法保持思路连贯性。

2023-05-10 22:45:30 3414 8

原创 前端面试题 - 计算机网络与浏览器相关

HTTP缓存策略是指在HTTP协议中定义的一组规则,用于确定客户端和服务器如何处理和使用缓存数据。它可以帮助网站提升性能、减少网络流量和降低服务器负载。浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识浏览器每次拿到返回的请求结果都会将该结果和缓存标识存入浏览器缓存中根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是强缓存和协商缓存。强缓存:使用强缓存策略时,如果缓存资源在过期时间内,是的话直接从本地缓存中读取资源,不与服务器进行通信。

2023-04-18 17:36:10 1075

原创 代码误写到master分支(或其他分支),此时代码还未提交,如何转移到新建分支?

有时候,我们拿到需求,没仔细看当前分支是什么,就开始撸代码了。完成了需求或者写到一半发现开发错分支了。

2023-03-23 22:35:17 4067 2

原创 关于JS中this对象指向问题总结

关于JS中this对象指向问题,相信做过项目的小伙伴多多少少都会遇到过,明明感觉代码写的没问题,可是运行的时候,就会报错,比如报错 xxx is not a function。我最近也遇到了,百度学习了不少前辈对于this对象指向问题的解析,于是总结了这篇文章。

2023-03-08 16:50:32 3142 2

原创 浅析js中的原型和原型链及其使用场景

最近浏览网站学习的时候,看到了这个话题,感觉面试里也经常会被问到;所以查阅了不少文章,想总结一下,方便以后翻看。理解的会比较浅显,希望能多多交流,以后理解更深层的也会持续在这里更新。

2023-02-27 16:37:10 2539

原创 vue中子组件间接修改父组件传递过来的值

父组件传递值给子组件是单向数据绑定; 子组件不能直接修改父组件的数据,但是可以间接修改数据。

2023-02-26 18:52:23 6797 3

原创 uniapp自定义验证码输入框,隐藏光标

点击输入框唤起键盘,蓝框就相当于input的光标,验证码输入错误或者不符合格式要求会将字体以及边框改成红色提示,持续1s,然后清空数据,恢复原边框样式;

2023-02-19 18:31:56 3130 6

原创 vue中实现后台系统权限管理的功能

后台管理系统的权限控制对于前端来说是经常用到的知识点,也比较重要,最近梳理一下写成文章,方便以后查阅。项目中实现菜单的动态权限控制使用到了两种技术,一种是Vue Router,另一种是vue3官方推荐使用的专属状态管理库Pinia。

2023-01-19 17:09:56 5537 3

原创 js将后端返回的文件流导出为excel,并自定义下载文件名

后台管理系统,常会出现导出excel表格功能;点击导出按钮,请求后端接口,需要将接口返回的`文件流`导出为excel,实现前端下载excel文件。

2022-12-13 10:11:58 10487 1

原创 前端js实现canvas压缩图片并上传

可以减少用户的等待时间,提升使用体验,目前手机拍摄的图片文件大小一般在几 M 左右,文件直接上传时会有卡顿现象

2022-12-12 08:45:00 3944 2

原创 css3滤镜属性filter实现网页变黑白效果

有些特殊的日子,很多网站页面都是黑白色的,其实用css3滤镜属性`filter`让网页马上变黑白,一行代码就搞定。

2022-12-01 16:08:20 2313

原创 理解浅拷贝和深拷贝以及实现方法

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会修改到原对象。

2022-11-29 08:30:00 2982 2

转载 vue路由传参当刷新页面时,参数变成“[object Object]”

如果传参是一个`对象`,点击进入页面路由可以获取对象的值;但是刷新页面会导致获取不到对象值,被强制转换为字符串 `"[object Object]"`,导致数据不能使用。

2022-11-25 16:32:03 5039 3

原创 微信小程序运行机制和生命周期

首先了解下小程序的运行机制,小程序从启动到最终被销毁,会经历很多不同的状态,小程序在不同状态下会有不同的表现。大致运行机制如下图。

2022-11-21 08:45:00 4391 2

原创 uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)

在做vue项目或者uniapp开发微信小程序时,经常会用到组件之间传值,因此想总结记录下。

2022-10-31 14:47:55 9879

原创 js中判断数据类型的几种实用方法

最近项目中有不少地方需要判断数据类型,但是判断数据类型也有好几种方法,并且每种方法判断的数据类型也有局限性,所以想总结一下,方便以后查阅。

2022-10-31 09:00:00 15739

原创 uniapp微信小程序切换到tabber页面没有自动刷新

通过uni.switchTab跳转到tabber页面比如个人中心页面,更新的数据没有刷新。导致页面的数据还是修改之前的。

2022-10-28 11:52:49 4528

原创 nginx部署前端项目的详细步骤

在前端开发过程中经常是需要把前端静态资源放到服务器中看效果,这时经常用到nginx来配置。

2022-10-24 08:15:00 21449 2

原创 获取不同机型微信小程序状态栏+导航栏高度

很多时候我们开发微信小程序,都需要先知道状态栏和导航栏的高度,才能去做其他功能。

2022-10-09 11:28:34 7801

转载 关于position定位布局的问题和理解

项目中有个position布局,祖父元素设置为relative,父元素设置为absolute,子元素相对谁定位呢?

2022-10-08 08:45:00 306

原创 js实现整数和小数分开并添加不同的样式

我需要将整数部分 166 用一个样式显示字体大小为30rpx。将小数部分 88 用一个样式显示字体大小为24rpx。//如果小数点后有值就用该值,没有默认'00'有其他更好的方式,欢迎互相交流~//使用分隔符分割字符串成数组。//小数点后只有一位的话,补0。比如数值是166.88,

2022-09-29 17:50:12 945

原创 git命令合并某一个分支的某个commit到目标分支

现在将 f 提交到master分支,其实这个f字母是打的比方,正常情况下是我们提交的commit版本号e32bb848。在A分支上提交了一个commit,B分支也需要提交这个commit代码,避免人工复制代码,可以使用git命令行操作。比如,我们的仓库中有 master 和 pre-master 两个分支,现在只想将 f 提交到 master分支。上面命令将 e,f 提交到master分支,并生成两个对应的新提交commit版本号。想将 e,f 都提交到master分支。

2022-09-29 08:30:00 5866

转载 uniapp 将元素滚动到指定位置的两种方法总结

使用 uni.pageScrollTo 方法,属于页面级别滚动。

2022-09-28 16:13:04 30414

原创 uni-app开发微信小程序使用腾讯地图选点和城市选择器插件

因为开发微信小程序,所以我这里用的是腾讯地图选点插件。附上官方文档腾讯地图选择器插件腾讯地图选点插件。

2022-09-27 14:51:39 6958 23

原创 uniapp和vue在页面数据渲染完毕之后再获取高度

在使用vue或者uniapp时,有时候需要在页面数据渲染完成之后调用方法,不然获取不到准确的数据,特别是在获取列表数据高度的时候,由于数据没有加载完,获取不到准确的高度。需要注意的是,当用户一进页面就滑动的时候,我们获取的高度也会发生变化。当下图中上部分的classifyList分类数据渲染完毕之后,获取一遍tab选项卡距离页面顶部的距离,有了这个距离进行其他操作;用于观察Vue实例上的数据变化,对应一个对象,键是需要观察的表达式,值是对应的回调函数。在修改数据之后立即使用这个方法,获取更新后的 DOM。

2022-09-27 09:25:20 3857 7

转载 uniapp下拉加载下一页设置节流阀控制多次数据请求

我们在下拉刷新过程会由于网速慢或各种原因,数据请求慢,此时我们在还没请求回数据又下拉刷新一次,但此时数据还未加载完成(函数还未运行完) ,此时页数+1,后面等到数据再次请求就不是下一页了data() {return {isLoading : false , //节流阀:判断是否已经请求完成,并返回数据。如果已返回则关闭节流阀,可再次请求下次数据 page : 1 , goodsList : [ ] };} ,

2022-09-26 23:06:04 910

原创 uni-app 实现搜索关键词高亮效果

根据关键字搜索相关地理位置的需求,并把关键词高亮显示,关键词输入提示用到了腾讯地图的sdk,帮助用户快速输入,详情见[腾讯地图 getSuggestion]

2022-09-26 16:16:55 2400 4

uniapp自定义验证码输入框,隐藏光标

内容概要:通过uniapp实现自定义验证码输入框,隐藏光标功能 适用人群:想要通过uniapp的原生input组件实现输入验证码功能 使用场景及目标: 1)点击输入框唤起键盘,蓝框就相当于input的光标,验证码输入错误或者不符合格式要求会将字体以及边框改成红色提示,持续1s,然后清空数据,恢复原边框样式。 2)5位验证码输入完毕,点击页面其他位置,隐藏键盘;这时如果发现验证码有误,再次点击输入框又唤起键盘,也能正常删除数字。 其他说明: 实现思路就是使用for循环去创建5个正方形的view标签,然后创建一个input标签,type=tel,最大输入长度为5(根据需求来设置),再将input伪隐藏掉,获取的值分别放到5个view中展示。 验证码失败后利用v-model双向绑定,清空输入的值,增加错误提示文字和边框样式。

2023-02-21

空空如也

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

TA关注的人

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